烧瓶插座io私聊

时间:2017-01-23 17:40:31

标签: python-3.x flask flask-socketio

如何在烧瓶插座中发送个人信息?我有一个关于request.sid的提示,但我不知道如何获得我发送消息的人的request.sid?如何为发件人和收件人分配公共房间?

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而不是接收方的sid,那么如何为它们分配同一个房间呢?

1 个答案:

答案 0 :(得分:3)

你有几种方法可以做到这一点。

当每个客户端连接时,您可以将分配给该客户端的request.sid与您的用户信息相关联。例如,您可以将其添加为用户数据库中的额外字段。然后,当您需要向单个客户端发送消息时,查找数据库中的sid,然后将其作为room调用中的emit()参数传递。

另一个,也许更简单的选择是在连接时将每个客户端放在他们自己的房间中。例如,您可以将每个客户端分配到以提供的用户名命名的房间。然后,您只需在room=username来电中传递emit()即可向用户发送消息。