Socket.io 套接字io中的一对一聊天

Socket.io 套接字io中的一对一聊天,socket.io,Socket.io,需要socketio一对一聊天的帮助。 我已经阅读了大量关于创建私人聊天室的示例。 我经常得到的示例如下: io.on('connection',socket=>{ //获取用户的聊天ID并加入具有相同聊天ID的聊天室 chatID=socket.handshake.query.chatID socket.join(chatID) //如果用户关闭插座,请离开房间 socket.on('disconnect',()=>{ socket.leave(chatID) }) //仅向特定用户发送消息

需要socketio一对一聊天的帮助。 我已经阅读了大量关于创建私人聊天室的示例。 我经常得到的示例如下:

io.on('connection',socket=>{
//获取用户的聊天ID并加入具有相同聊天ID的聊天室
chatID=socket.handshake.query.chatID
socket.join(chatID)
//如果用户关闭插座,请离开房间
socket.on('disconnect',()=>{
socket.leave(chatID)
})
//仅向特定用户发送消息
socket.on('send_message',message=>{
receiverChatID=消息。receiverChatID
senderChatID=message.senderChatID
content=message.content
//只向特定的房间发送消息
socket.in(receiverChatID).emit('receive_message'{
“内容”:内容,
“senderChatID”:senderChatID,
“receiverChatID”:receiverChatID,
})
})
});
但我不能动脑:在这个“receiverChatID”房间的例子中,所有当前正在向同一个接收者发送消息的用户(比如user2)都将收到其他用户正在发送的消息的广播

例如,用户1和用户2正在进行私人聊天对话。聊天室id为“user2”。 现在user3向用户2发送消息,房间名称也将是“user2”,因此当广播完成时,用户3和用户1都将接收消息,即使它们应该是单独的

一种方法是在两个用户之间创建一个唯一的聊天室id,并在其中维护一些数据存储。如果是这样做的话,那么如何创建唯一的聊天室id,特别是在用户加入、离开和重新加入save room时。 并为两个用户查询这个unqique房间,无论他们何时加入

假设我创建了一个映射:{roomid1:MD5[“user1”,“user2”]}。 现在,您如何决定用户1和用户2的顺序(我猜是字母顺序),以便为两对用户创建一个唯一的房间id

如何解决一对一聊天的问题