node.js - 获取总数。 Socket.io + 多进程/集群中 Room 中的连接用户

标签 node.js sockets redis socket.io

我不想在 socket.io 中获取任何已连接的用户,并且我有多个 socket.io 服务器

例如。当 user1 连接到 server1 并加入房间 room1

下面的语句返回给连接的用户列表

然后

io.nsps['/'].adapter.rooms["room1"]

io.sockets.adapter.rooms["room1"]

而且我还尝试了 SO 和谷歌上可用的许多其他解决方案。

但是当我在 server2 中使用上述语句时,它不会返回任何内容。

如何在特定房间的所有服务器中获取没有连接的用户?

我正在使用 socket.io-redis 模块在多个进程之间进行通信。

最佳答案

如果你想共享 session /房间等,你可能需要使用 redis。

这里有使用多个 Node 的文档(据我所知,这是您所拥有的)以及使用 redis 在一个 Node 和其他 Node 之间传递事件的文档。 http://socket.io/docs/using-multiple-nodes/#passing-events-between-nodes

是的,要检查一个房间中的 session ,以下是正确的 io.nsps['/'].adapter.rooms["room1"]

哎呀,现在才读到您声明已经在使用 socket.io-redis。如果配置正确,它应该可以工作,至少对我来说是这样。

关于node.js - 获取总数。 Socket.io + 多进程/集群中 Room 中的连接用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32647289/

相关文章:

javascript - 使用 JEST 更改单个测试的 process.env 变量

javascript - typeof 函数声明与函数表达式

Java NIO 服务器/客户端聊天应用程序 - 仅通过关闭套接字发送数据

java - 使用OutputStreamWriter写入二进制char数组

node.js - 可以将同一个 Redis 实例与 kue.js 一起手动使用吗?

python - Redis模式: how would you cache free/occupied ressource with expiration?

javascript - Promise 在 nodejs 中没有实现

node.js - 调用CreateStack操作时发生错误(AccessDenied) :

android - 从Android中的多个蓝牙套接字读取(单线程)

performance - Redis 最大内存策略 : performances of volatile-lru vs allkeys-lru