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

时间:2017-03-14 16:39:10

标签: node.js heroku websocket socket.io chat

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

1 个答案:

答案 0 :(得分:2)

您需要做的是使用一些共享资源,如Redis数据库或某些发布/订阅服务(如Faye或Kafka),或者像ZeroMQ或RabbitMQ这样的队列服务。这通常是为了使这样的事情跨服务器的多个实例工作。您还可以使用CouchDB更改源或RethinkDB的类似功能,以确保所有实例在其中任何一个发布后立即获取所有数据。

请参阅: