Skip to content

Commit 3ddadcf

Browse files
committed
add clients_room in server.py and client_in_room in base_manager.py to get the number of clients in a room
1 parent d556a0e commit 3ddadcf

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

src/socketio/base_manager.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,13 @@ def get_rooms(self, sid, namespace):
154154
pass
155155
return r
156156

157+
def client_in_room(self, room_in, namespace):
158+
"""Return the number of client in room"""
159+
try:
160+
return len(self.rooms[namespace][room_in])
161+
except KeyError:
162+
pass
163+
157164
def emit(self, event, data, namespace, room=None, skip_sid=None,
158165
callback=None, **kwargs):
159166
"""Emit a message to a single client, a room, or all the clients

src/socketio/server.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,16 @@ def rooms(self, sid, namespace=None):
472472
namespace = namespace or '/'
473473
return self.manager.get_rooms(sid, namespace)
474474

475+
def clients_room(self, room, namespace=None):
476+
"""Return the number of clients in a room.
477+
478+
:param room: room selected.
479+
:param namespace: The Socket.IO namespace for the event. If this
480+
argument is omitted the default namespace is used.
481+
"""
482+
namespace = namespace or '/'
483+
return self.manager.client_in_room(room, namespace)
484+
475485
def get_session(self, sid, namespace=None):
476486
"""Return the user session for a client.
477487

0 commit comments

Comments
 (0)