我正在尝试使用socket.io创建一个聊天应用程序,我要做的是创建一个只有两个人的房间,如果房间已经有两个人,另一个人被创建等等,我的问题是假设你加入了10号房间,但你刷新了网页,使其断开了你与房间2的连接,所以当你寻找一个空房间时,你将加入2号房间,而不是10号房间,我不能只使用一个常量作为名称,因为每次一个房间满了,我都需要动态创建另一个。
发布于 2019-03-09 08:16:57
您可以将用户加入的房间名称或编号存储到window.localStorage中。
在页面刷新时,检查localStorage中是否有任何值,如果有,则使用该值作为命名空间
https://socket.io/docs/rooms-and-namespaces/
let roomID = localStorage.roomID; // Try to get the ID from localStorage
if ( !roomID ) { // no ID found? Create room and store ID to localStorage
// CREATE A NEW ROOM ID (someGeneratedRoomID) <<< YOUR LOGIC HERE
roomID = localStorage.roomID = someGeneratedRoomID; // Store it
}
// Connect
io.on('connection', function(socket){
socket.join( roomID );
});
// Talk
io.to( roomID ).emit('some event');https://stackoverflow.com/questions/55072139
复制相似问题