我应该如何构建一个在服务器的多个实例中工作的聊天客户端?

How should I build a chat client that works in multiple instances of a server?

所以我在 nodejs 中构建了一个聊天客户端并试图解决这个问题。我正在使用 heroku 来部署我的服务器,这意味着我的服务器将有多个实例 运行。为了解决用户连接到其套接字未初始化的服务器的问题,我使用了粘性会话。现在我的问题是,当我的一个实例收到一条消息时,我应该如何将它发送给可能在另一个实例上初始化的另一个用户?

你需要做的是使用一些共享资源,如 Redis 数据库或一些 pub/sub 服务,如 Faye 或 Kafka,或队列服务,如 ZeroMQ 或 RabbitMQ。这通常是为了让类似的事情在服务器的多个实例上工作而做的。您还可以使用 CouchDB 更改提要或 RethinkDB 的类似功能来确保您的所有实例在其中任何一个发布后立即获得所有数据。

参见: