gpt4 book ai didi

json - 缩放 websocket Node 服务器

转载 作者:IT王子 更新时间:2023-10-29 06:07:51 24 4
gpt4 key购买 nike

我知道之前有人问过这个问题(How to Scale Node.js WebSocket Redis Server?),但我想知道是否有任何替代方法可以在 Node 实例之间快速共享 websocket 对象,特别是 ws 类型套接字(https://github.com/einaros/ws)。我已经尝试过 redis 并遇到了网络套接字对象是循环的并且难以序列化的问题。然后我使用了 Crockford 的 cycle.js(https://github.com/douglascrockford/JSON-js/blob/master/cycle.js),但是它似乎去掉了 websocket 对象方法,因为在我从 redis 读回套接字后,我从 Node 收到一个错误,说“对象对象没有方法发送”,并且回收它。任何帮助将不胜感激。

提前致谢,詹姆斯。

最佳答案

IMO 你应该为此使用消息队列......例如(RabbitMQ)

  1. 应用程序在 Node A 和 Node B 上启动并连接到 RabbitMQ
  2. 客户端 A 连接到 Node A 并订阅名为 XXX 客户端的队列
  3. 客户端 B 连接到 Node B 并订阅名为 XXX 的队列
  4. 客户端A向websocket服务器发送消息 Websocket服务器向 Node A发送消息
  5. Node A发布消息到RabbitMQ队列XXX
  6. Node B 收到来自 RabbitMQ 的消息,因为它订阅了队列 XXX
  7. Node B向客户端B发送消息或将消息发布给 Node B上所有连接的客户端

因此,您只需要将消息队列放入您的架构(RabbitMQ、ZeroMQ)等

关于json - 缩放 websocket Node 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565702/

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