Javascript 套接字IO如何向特定的人发送消息

Javascript 套接字IO如何向特定的人发送消息,javascript,node.js,websocket,socket.io,Javascript,Node.js,Websocket,Socket.io,基于SocketIO实现与人的私人聊天是一种很好的方法吗 socket.Id 在我阅读了文档之后,唯一直接的方法就是使用 io.to(`${socket.id}`).emit("event name",{message:msg,from:socketId}); 我实现了一个测试用例,它可以工作,但对我来说,困难的部分是,如果一个人关闭浏览器,socketId就会改变,那么通知每个人改变的标准方式是什么 是否可以重新连接同一个socketId 所以,任何有经验的人,请告诉我做这件事最简单的方法是

基于SocketIO实现与人的私人聊天是一种很好的方法吗 socket.Id

在我阅读了文档之后,唯一直接的方法就是使用

io.to(`${socket.id}`).emit("event name",{message:msg,from:socketId});
我实现了一个测试用例,它可以工作,但对我来说,困难的部分是,如果一个人关闭浏览器,socketId就会改变,那么通知每个人改变的标准方式是什么 是否可以重新连接同一个socketId


所以,任何有经验的人,请告诉我做这件事最简单的方法是什么

你可以和其他人一起去房间

io.on('connection', function(socket){
    socket.join('room_id');
});
//Use this on the server side.
因此,一旦某人发出信息,您可以使用以下方式将其信息广播给房间中的其他人(或私人聊天时的其他人):


因此,您可以使用用户的电子邮件id(或任何其他主键)创建一个唯一的密钥,并将其加入他们的私人聊天室,而不是使用套接字id发送消息。

是否要通知所有用户用户已离开聊天室?您对我给出的答案是否有疑问?请回答,为什么我会对聊天室的私人聊天感到困惑。假设a和B在那里,聊天室应该根据什么创建。聊天室应该由谁创建?a或B谁应该加入谁的聊天室?所有这些都与socketId非常混淆。这很简单。您只需使用用户ID向用户发送消息
socket.to('room_id').emit('Some Message');