socket io代码令人困惑

时间:2016-07-18 20:53:29

标签: socket.io flask-socketio

这是在socket_io python服务器的base_manager.py中 - >这段代码有什么意义?我想发一条消息。如果没有房间,那怎么可能工作呢?如果名称空间不在self.rooms中 - >没有空间所以它总是会回到呼叫者身边吗?:

 def emit(self, event, data, namespace, room=None, skip_sid=None,
         callback=None):
    """Emit a message to a single client, a room, or all the clients
    connected to the namespace."""
    if namespace not in self.rooms or room not in self.rooms[namespace]:
        return
    for sid in self.get_participants(namespace, room):
        if sid != skip_sid:
            if callback is not None:
                id = self._generate_ack_id(sid, namespace, callback)
            else:
                id = None
            self.server._emit_internal(sid, event, data, namespace, id)

1 个答案:

答案 0 :(得分:0)

请注意,您正在查看内部方法,而不是应用程序可以访问的内容。

您缺少的信息是(我认为)所有用户都有自己的房间。向单个用户发送消息的方式是将其发送到该用户的房间,该房间以分配给该客户会话的sid命名。

因此,假设您有一个被分配了sid="12345"的用户。在您的应用程序中,您可以通过致电emit('some-event', data, room='12345')向该用户发送消息。

相关问题