gpt4 book ai didi

javascript - 如何在socket.io中始终加入同一个房间?

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:11 25 4
gpt4 key购买 nike

我正在尝试使用socket.io制作一个聊天应用程序,我所做的是创建一个只有两个人的房间,如果房间里有两个人,已经创建了另一个人,依此类推,我的问题是,假设您加入了房间10,但您刷新了网页,因此它会断开您与房间的连接,而另一个人会断开与房间2的连接,所以当您寻找一个空房间时,您将加入2而不是10,我不能只使用常量作为名称,因为我需要动态创建另一个房间每次都满了。

最佳答案

您可以存储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');

关于javascript - 如何在socket.io中始终加入同一个房间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55072139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com