2017-01-23 147 views
1

如何发送个人讯息在烧瓶插座io?我有一个关于request.sid的暗示,但我不知道如何获得我要发送消息的人的request.sid?我怎样才能给发送者和接收者分配一个共同的房间?烧瓶插座io私人聊天

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,那么我怎样才能把他们两个分配给同一个房间呢?

回答

2

你有几个方法来做到这一点。

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

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

+0

嘿米格尔,我想第一种方法是我可以实现的完美方法。 – sanjayscript