如何在烧瓶插座中发送个人信息?我有一个关于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,那么如何为它们分配同一个房间呢?
答案 0 :(得分:3)
你有几种方法可以做到这一点。
当每个客户端连接时,您可以将分配给该客户端的request.sid
与您的用户信息相关联。例如,您可以将其添加为用户数据库中的额外字段。然后,当您需要向单个客户端发送消息时,查找数据库中的sid
,然后将其作为room
调用中的emit()
参数传递。
另一个,也许更简单的选择是在连接时将每个客户端放在他们自己的房间中。例如,您可以将每个客户端分配到以提供的用户名命名的房间。然后,您只需在room=username
来电中传递emit()
即可向用户发送消息。