2016-07-18 4 views
0

これはsocket_ioのbase_manager.pyにありますpython server - >このコードはどういう意味ですか?私はメッセージを出したい。部屋がないとどうしたらうまくいくのですか? self.rooms内の名前空間でない場合 - >それは常に正しい呼び出し元に戻って戻りますので、?:あなたは内部メソッドではなく、アプリケーションにアクセスすることが何かを見ているソケットioコードが混乱する

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) 

答えて

0

注余地はありません。

あなたが紛失している情報は、すべてのユーザーが自分の部屋を持っていると思います。 1人のユーザーにメッセージを送信する方法は、そのユーザーの会議室に割り当てられたsidという名前のユーザーのルームにメッセージを送信することです。

したがって、sid="12345"と割り当てられたユーザーがいるとします。アプリケーションでは、emit('some-event', data, room='12345')を呼び出してこのユーザーにメッセージを送信できます。