使用Flask-socketIO即时通讯

问题描述:

我想使用Flask + Flask-soketIO实现即时通讯服务器。 与客户端在手机上(在Ionic 2前面)

我已经尝试了不同的聊天室示例与socketIO,但我想知道如何管理多个用户聊天两个两个。
使用Flask-socketIO即时通讯

我还不熟悉即时消息架构。我有几个关于这个问题的问题:

  • 首先,Flask是一个很好的框架来实现手机应用程序的即时通讯?
    我的确从Flask开始,因为它看起来很强大,并且不像django那样重。
  • 在使用sokcetIO的即时通讯应用程序中,如何连接两个用户?
    我试过这个代码,但它在同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) 
  • 它是否可扩展,是否支持大量流量?

与sokcetIO即时消息应用程序,我怎么可以连接用户的两个两个?

如果它总是两个用户聊天,那么他们可以直接发送消息给对方。当客户端连接时,会分配一个会话ID或sid。如果您跟踪这些ID并将它们映射到用户,则可以向特定用户发送消息。举例来说,如果你存储在您的用户数据库为用户sid值,你就可以直接发送消息给用户,如下所示:

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

它是可扩展的,并且它支持大流量?

有很多因素会影响您的服务器可以处理多少流量。 Flask-SocketIO服务器是可扩展的,从某种意义上说,如果单个进程无法处理流量,则可以添加更多进程,基本上可以为您提供很大的增长空间。