gpt4 book ai didi

socket.io 在重新连接时重新加入房间

转载 作者:行者123 更新时间:2023-12-03 14:36:22 24 4
gpt4 key购买 nike

我正在编写一个新的 SPA 应用程序,它将订阅多个房间以进行多种类型的信息更新。

在我的生产设置中,我将在负载平衡器后面使用两台服务器以确保可靠性。

在断开连接的情况下 - 客户端是否必须在重新连接事件回调中重新发送房间订阅请求,或者有没有办法让服务器自动重新连接客户端(即使客户端由于服务器故障而重新连接到不同的服务器) ) ?

最佳答案

Socket.io 将在断开连接时从所有房间取消订阅您的用户。它将从服务器端取消订阅您。我玩了一点。服务器可以将用户的房间存储在用户 ID 下的 redis 或数据库中,并在连接时检查该用户是否应该在这些房间中的任何一个中。此时,您的用户可以从服务器端加入它们,而无需从客户端执行任何操作。

问题是这个房间列表必须不断地存储和更新。这只是另一件必须在后端无缝工作的事情。需要进行大量测试才能考虑可能会扰乱您的组织的所有可能性。比如,如果他们在另一台设备上登录,你必须清理房间并放入新房间,但是如果用户再次打开他的笔记本电脑并重新连接,现在他必须从他的笔记本电脑回到那些房间。 ...这是完全可行/可解决的,但我只在前端这样做:

  // rejoin if there's a disconnect
mySocket.on('reconnect', () => {
mySocket.emit('subscribe', 'theRoom')
})

...没有进一步的麻烦。如果您添加了有关为什么必须从服务器执行此操作的更多详细信息..?

关于socket.io 在重新连接时重新加入房间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37461495/

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