2017-06-13 6 views
1

Flask + Flask-soketIOを使用してインスタントメッセージングサーバーを実装したいと考えています。 携帯電話のクライアント側(前面のIonic 2)

私はすでにsocketIOでさまざまなチャットルームの例を試しましたが、2人で2人のチャットを管理する方法は不思議です。
Flask-socketIOを使用したインスタントメッセージ

私はまだインスタントメッセージングアーキテクチャに精通していません。私は主題に関するいくつかの質問があります:

  • まず、携帯電話アプリケーションのためのインスタントメッセージングを実装するための良いフレームワークですか?
    私はFlagsで始まりました.Djangoのように強力で重くはないようです。
  • sokcetIOを使用したインスタントメッセージングアプリでは、どのようにユーザーを2つずつ接続できますか?
    私はこのコードを試してみましたが、それは同じtchat部屋に複数のユーザーのために動作します。クライアント側で

:サーバー側で

<script type="text/javascript"> 
     $(document).ready(function() { 
      var socket = io.connect("http://127.0.0.1:5000"); 
      socket.on('connect', function() { 
       console.log('connected') 
      }); 
      socket.on('message',function(msg){ 
       $("#messages").append('<li>' + msg + '</li>'); 
      }); 
      $("#sendButton").on('click', function() { 
       console.log($('#myMessage').val()); 
       socket.send({ 'author': 'Kidz55', 
           'message': $('#myMessage').val()}); 
       $('#myMessage').val(''); 
      }); 
     }); 
    </script> 


@socketio.on('message') 
def handle_json(json): 
    print('received json: ' + str(json)) 
    # broadcasting to everyone who 's connected 
    send(json,,broadcast=True) 
  • スケーラビリティはありますか、それはトラフィックが多いですか?

答えて

1

sokcetIOを使用したインスタントメッセージングアプリでは、どのようにユーザーを2つずつ接続できますか?

2人のユーザーがチャットしている場合は、お互いに直接メッセージを送信できます。クライアントが接続すると、セッションID、つまりsidが割り当てられます。これらのIDを追跡してユーザーにマッピングすると、特定のユーザーにメッセージを送信できます。

emit('private_message', {'msg': 'hello!'}, room=user.sid) 

それはスケーラブルであり、それは大量のトラフィックをサポートしていない:あなたはあなたのユーザデータベース内のユーザのためのsid値を格納している場合たとえば、次のように、あなたはそのユーザーに直接メッセージを送ることができますか?

サーバーで処理できるトラフィックの量には、多くの要因が影響します。 Flask-SocketIOサーバーは、単一のプロセスがトラフィックを処理できない場合、基本的に多くのプロセスを追加することができます。

関連する問題