2017-01-23 22 views
1

플라스크 소켓 io에서 개인 메시지를 보내는 방법? 나는 request.sid에 대한 힌트를 가지고 있지만 어떻게 요청을받을 수 있는지 모르겠다. 메시지를 보내는 사람의 시드. 발신자와 수신자에게 공통 공간을 할당하려면 어떻게해야합니까?플라스크 소켓 io 개인 채팅

if user_exist: 
     @socketio.on('private message', namespace='/message/') 
     def join(msg): 
      join_room(request.sid) 
      room = request.sid 
      emit("my response",{ "data" : msg['data'] },room=room) 

여기서 request.sid는 수신자가 아닌 발신자의 sid를 나타냅니다. 어떻게 둘 다 같은 방을 할당 할 수 있습니까?

답변

2

이렇게하려면 몇 가지 방법이 있습니다.

각 클라이언트가 연결할 때 해당 클라이언트에 할당 된 request.sid을 사용자 정보와 연결할 수 있습니다. 예를 들어,이를 사용자 데이터베이스의 추가 필드로 추가 할 수 있습니다. 그런 다음 단일 클라이언트에 메시지를 보내야하는 경우 데이터베이스에서 sid을 찾아 emit() 호출의 room 인수로 전달하십시오.

또 다른 간단하고 간단한 옵션은 각 클라이언트를 연결할 때 자신의 방에 배치하는 것입니다. 예를 들어, 제공된 사용자 이름의 이름이 지정된 회의실에 각 클라이언트를 할당 할 수 있습니다. 그런 다음 emit() 호출에 room=username을 전달하여 사용자에게 메시지를 보낼 수 있습니다.

+0

안녕하세요 미구엘, 첫 번째 방법은 내가 구현할 수있는 완벽한 방법이라고 생각합니다. – sanjayscript