如果用户重新连接到服务器(使用 socket.io),我如何才能将该用户重新加入他所属的房间?
Given a user reconnects to the server (using socket.io), how can i rejoin that user to the room he belonged to?
问题如下:
一个用户通过特定的socketId连接到服务器,并被安排在一个特定的房间里。那个房间是他们两个人住的,这个房间从来没有重复使用过。
但是,由于网络故障,用户断开连接然后重新连接。
我的问题是,当用户重新连接时,我如何将用户连接到他们最初使用的房间?
问题是当他们重新连接他们的 socketId 更改时,因为它正在创建一个新连接,所以我不能用它来识别它们。 Ip 也不起作用,因为同一家庭中可以有多个人使用该网站,或者同一个人可以打开两个选项卡。
谢谢。
var room = user1 + user2;
socket.join(room);
io.to(room).emit('message', message);
可以根据用户名创建房间,这里是按用户名升序拼接创建房间。因此,当用户 A 连接到 B 时,反之亦然,他们连接到同一个房间,即 AB.
问题如下:
一个用户通过特定的socketId连接到服务器,并被安排在一个特定的房间里。那个房间是他们两个人住的,这个房间从来没有重复使用过。
但是,由于网络故障,用户断开连接然后重新连接。
我的问题是,当用户重新连接时,我如何将用户连接到他们最初使用的房间?
问题是当他们重新连接他们的 socketId 更改时,因为它正在创建一个新连接,所以我不能用它来识别它们。 Ip 也不起作用,因为同一家庭中可以有多个人使用该网站,或者同一个人可以打开两个选项卡。
谢谢。
var room = user1 + user2;
socket.join(room);
io.to(room).emit('message', message);
可以根据用户名创建房间,这里是按用户名升序拼接创建房间。因此,当用户 A 连接到 B 时,反之亦然,他们连接到同一个房间,即 AB.