我需要理解在多个实例上处理WebSockets的概念,以便可以在所有实例之间共享。例如,我有三个正在运行的节点,由负载均衡器连接。在接收到需要在特定套接字上发出的数据时,我的最初想法是创建哈希映射或JSON对象来保存WebSocket连接。但是我意识到这不能以这种方式完成,因为它仅适用于特定实例。如果我在任何一个实例上接收到数据,那么大部分数据将不会发出到该WebSocket连接,因为它不知道WebSocket是在哪个实例上创建的。有没有一种好的方法来处理WebSocket连接,使其可以在所有实例上共享。我的想法是使用Redis或PostgreSQL数据库,因为它们在所有实例之间共享。
此外,我已经尝试过使用PostgreSQL解决方案来存储WebSocket连接,但当我保存连接时,它显示
TypeError: Converting circular structure to JSON
是否有一些好的解决方案来处理可以在所有实例之间共享的WebSocket连接。如果数据库是一个好的解决方案,我应该如何解决TypeError:Converting circular structure to JSON问题。
此外,我已经尝试过使用PostgreSQL解决方案来存储WebSocket连接,但当我保存连接时,它显示
TypeError: Converting circular structure to JSON
是否有一些好的解决方案来处理可以在所有实例之间共享的WebSocket连接。如果数据库是一个好的解决方案,我应该如何解决TypeError:Converting circular structure to JSON问题。
bull-queue
用于创建队列,例如任务队列(这样进程可以逐个处理它们...)。是的,bull-queue
还利用了 Redis,因此我想跨多个节点拥有一个队列是可能的,Redis 将使它们保持同步。不幸的是,这与 socket.io 没有任何关系。你在使用 socket.io 的情况是什么?也许我错过了什么。 - Pascal Lamers