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

참고, 응용 프로그램에 액세스 할 수없는 무언가를.

누락 된 정보는 모든 사용자가 자신 만의 공간을 가지고 있다고 생각합니다. 단일 사용자에게 메시지를 보내는 방법은 해당 클라이언트 세션에 할당 된 sid이라는 이름으로 해당 사용자의 방으로 메시지를 보내는 것입니다.

따라서 sid="12345"으로 지정된 사용자가 있다고합시다. 응용 프로그램에서 emit('some-event', data, room='12345')을 호출하여이 사용자에게 메시지를 보낼 수 있습니다.