烧瓶socketio多个连接

时间:2017-06-01 15:58:56

标签: python socket.io

我正在尝试创建一个类似FB的聊天应用程序。我已经开始实施最低限度的烧瓶socketio了。到目前为止,我已经了解客户端和服务器端通过公共处理程序进行通信。我目前的实施是免费的所有聊天。为简洁起见,我只展示处理程序:

客户端:

 socket.on('message', function(msg) {
  $("#messages").append('<li>'+msg+'</li>');
  console.log('Received message');
 });

服务器端:

@socketio.on('message')
def handleMessage(msg):
 print('Message: ' + msg)
 send(msg, broadcast=True)

问题:

如何传递参数,以便我可以使用不同的聊天ID

2 个答案:

答案 0 :(得分:2)

我想你想要做的是一些聊天室。好消息! Flask-SocketIO现在原本处理房间。 您可以像这样导入模块:

from flask_socketio import SocketIO, emit, join_room, leave_room,
close_room, rooms, disconnect

为了加入一个房间,它看起来像这样:

@socketio.on('join', namespace='/test')
def join(message):
    join_room(message['room'])
    session['receive_count'] = session.get('receive_count', 0) + 1
    emit('my_response',
         {'data': 'In rooms: ' + ', '.join(rooms()),
'count': session['receive_count']})

您可以在Miguel's Github page:)

中找到完整的代码示例

答案 1 :(得分:0)

对不起以前的回答。 你可以从sid获得cookies。如果您将聊天ID保存到cookie中。您可以轻松识别用户ID。 这是我的命名空间代码。

global
 lua-load /usr/local/etc/haproxy/test_world.lua


defaults
  mode http

frontend  http
  bind 0.0.0.0:80
  mode http
  http-request  lua.test_world

我已经在python 2.7中实现了它你似乎使用了python 3.但你可以实现我的代码。