【问题标题】:socket io code confusing套接字 io 代码令人困惑
【发布时间】:2016-07-18 20:53:28
【问题描述】:

这是在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)

【问题讨论】:

    标签: socket.io flask-socketio


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多