Websockets(ws) , NodeJs 集群,
Posted
技术标签:
【中文标题】Websockets(ws) , NodeJs 集群,【英文标题】:Websokets(ws) , NodeJs Clusters, 【发布时间】:2017-10-25 14:07:56 【问题描述】:我正在构建实时连接服务器。并希望使用节点集群对其进行扩展
我浏览了许多不同的网站,试图弄清楚如何实现 Websokets(ws) 和节点集群。所以我想尝试的基本想法是:我拥有连接到服务器的所有用户的数组,例如: key:ws, key:ws,key:ws
所以我想做的是用 Websockets 运行 Node js 集群,我会得到类似的东西
Master : 将所有连接的 ws 存储在数组中的地方: key:ws, key:ws ,key:ws Worker1:要连接的 Ws 服务器 Worker2:要连接的WS服务器
我想知道的是,例如连接到 Worker2 的用户想要向连接到 Worker2 和 worker1 的用户发送消息。
所以我将从 Worker2 向 Master 发送消息以获取所有用户,Master 将发送 key:ws(worker1), key:ws(worker2),key:ws。 Worker2 将遍历这个数组并向每个用户发送消息。 该实现工作或消息是否不会发送给连接到另一个 Worker 的用户?
非常感谢您的回答。
【问题讨论】:
我没有使用 Socket.io/Redis 的经验,但你可以试试这个socket.io/docs/using-multiple-nodes 【参考方案1】:有一个包 wse-cc 可以在节点之间进行完全控制的用户平衡,但问题是 - 它没有很好地记录。
它使用不同的进程而不是集群,使其能够在多台物理机器上工作。我将它用于浏览器 MMO 游戏。如果您有兴趣 - 我可以制作一个关于如何设置它的快速文档。顶部不需要任何平衡器,可以在单台机器或多台机器上工作。
或者您可以访问issues page - 我会帮助解决任何问题。
【讨论】:
以上是关于Websockets(ws) , NodeJs 集群,的主要内容,如果未能解决你的问题,请参考以下文章
连接到 websockets NodeJS Express 服务器时出错
NodeJS中的Websockets。从服务器端WebSocket客户端调用WebSocketServer
本地主机上的 Websockets 通过 https:// 问题
Beyondcode\laravel-websockets 它正在重定向到 wss 而不是 localhost 上的 ws