node.js - Socket.io断开连接和redis

标签 node.js redis socket.io scalability

我试图通过从保存我所有数据的常规数据结构切换到使用 redis 和集群来扩展我的 socket.io 应用程序。但是,我遇到了一些问题,因为在当前实现的某个时刻,我将套接字对象与其他属性一起存储在此数据结构 data[socket.id].socket = socket 中,因为在我的应用程序有时我需要执行 data[someId].socket.disconnect() 来手动断开套接字。

我知道我不能将对象直接存储到 redis 中,所以我尝试使用 JSON.stringify(socket) 但没有成功,因为 socket 是循环的。还有另一种方法可以仅使用 id 断开套接字吗?这样我就可以像这样存储 id data[socket.id].id = socket.id 并且可以像 data[someId].id 那样调用它。 disconnect() 之类的。所以基本上我正在寻找一种方法来断开套接字而无需访问实际的套接字对象(我确实可以访问 io 对象)。

谢谢大家的帮助。

最佳答案

这似乎已经完成但没有在任何地方记录...需要的是使用 io.sockets.clients(someId).disconnect() 并且实际上会断开客户端,无论它连接到哪个实例。我将它们存储在我自己的阵列中,但实际上并不需要。

关于node.js - Socket.io断开连接和redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13497654/

相关文章:

node.js - React Native 尚不支持 NPM 5

ruby - 检索/列出 Redis 数据库中的所有键/值对

javascript - node.js 应用程序发送广播消息 socket.io

node.js - 使用 Http-post 方法在 passport-saml 中实现注销功能

javascript - Node.js/Server.js 套接字实现问题

redis - Spring data Redis集群Lettuce连接设置

python - 使用MongoDB作为我们的主数据库,我应该使用单独的图数据库来实现实体之间的关系吗?

node.js - 无法连接到 Socket.io 错误 : xhr poll error

Python SocketIO_client 失败 ImportError : No module named socketIO_client

node.js - 同步调用Redis Server