2017-01-23 6 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引数として渡します。

もう1つ、もっと簡単なオプションは、各クライアントを接続時に自分の部屋に置くことです。たとえば、各クライアントを、指定されたユーザ名の名前が付けられた部屋に割り当てることができます。次に、emit()コールでroom=usernameを渡すだけで、ユーザーにメッセージを送信できます。

+0

こんにちはミゲル、私は最初のアプローチは私が実装することができる完璧なものだと思います。 – sanjayscript

関連する問題