鉴于用户重新连接到服务器(使用socket.io),我如何将该用户重新加入他所属的房间?

时间:2016-03-20 17:24:09

标签: node.js sockets socket.io reconnect

问题如下:

用户使用特定的socketId连接到服务器,并与特定房间的合作伙伴一起放置。那个房间对他们来说是两个人,房间不会再被重复使用。

但是,由于互联网故障,用户断开连接然后重新连接。

我的问题是,当他们重新连接时,我如何将用户连接到他们正在使用的房间?

问题是当他们重新连接socketId更改时,因为它正在创建一个新连接,所以我无法使用它来识别它们。 Ip也不会工作,因为不止一个人可以在同一家庭中使用该网站,或者同一个人可以打开两个标签。

谢谢。

1 个答案:

答案 0 :(得分:0)

var room = user1 + user2;
socket.join(room);
io.to(room).emit('message', message);

可以根据用户名创建房间,这里通过按升序连接用户名来创建房间。因此,当用户A连接到B或反之时,它们连接到同一个房间,即AB。