Aha*_*ron 8 cluster-computing websocket node.js express socket.io
我正在研究由node.js + express + socket.io提供支持的1-1聊天室应用程序.我正在关注文章:Socket.IO - 房间和命名空间
在文章中,他们演示了如何启动io.adapter使用模块socket.io-redis:
var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
Run Code Online (Sandbox Code Playgroud)
pubClient和subClient.我应该提供吗?有什么不同?谢谢.
您不需要传递自己的 pubClient/subClient。如果您传递主机/端口,将为您创建它们。但是,如果您想自己创建它们,出于任何原因(例如您想调整重新连接超时),您可以创建这两个客户端并将其传递给适配器。
适配器在内部广播所有发出的信号。因此,它为您提供了集群功能。例如,假设您有聊天应用程序,并且负载均衡器后面有 3 个 Node.js 服务器(因此它们共享单个 URL)。我们还假设 6 个不同的浏览器连接到负载均衡器 URL,并且它们被路由到 3 个独立的 Node.js 进程,每个 Node.js 服务器有 2 个用户。如果客户端 #1 发送一条消息,node.js #1 将执行类似的操作io.to('chatroom').emit('msg from user #1')。如果没有适配器,两个服务器 #1 用户都将收到发出的信号,但其余 4 个用户则不会。但是,如果您使用适配器,剩余的 Node.js #2 和 Node.js #3 将收到发出已完成的信息,并将向其客户端发出相同的发出 - 并且所有 6 个用户都将收到初始消息。
| 归档时间: |
|
| 查看次数: |
596 次 |
| 最近记录: |