套接字IO如何将消息发送给一个特定的人

时间:2018-08-11 11:45:46

标签: javascript node.js websocket socket.io

使用基于以下内容的SocketIO与人进行私人聊天是一种好方法吗? socket.Id

阅读完文档后,唯一直接的方法就是使用

io.to(`${socket.id}`).emit("event name",{message:msg,from:socketId});

我实现了一个有效的测试用例,但对我而言最困难的部分是,如果一个人关闭浏览器,socketId会发生变化,那么通知每个人有关变化的标准方法是什么? 是否可以使用相同的socketId

重新连接

所以任何有经验的人,请告诉我这样做的直接方式是什么

1 个答案:

答案 0 :(得分:0)

您可以将人们加入房间。

io.on('connection', function(socket){
    socket.join('room_id');
});
//Use this on the server side.

因此,一旦某人发出信号,您可以使用以下方法将其消息广播给房间中的其他人(或私人聊天中的其他人):

socket.to('room_id').emit('Some Message');

因此,您可以使用用户的电子邮件id(或任何其他主键)来创建唯一键,而不是使用socket-id发送消息,然后将他们加入自己的私人房间。