2015-11-02 114 views
3

我正在研究基于node.js的Web应用程序,该应用程序需要能够将数据推送到浏览器。 Web应用程序将位于负载平衡器后面。Node.js服务器发送带负载均衡器的事件

假设的Web App有POST REST API为:

/update_client

,并假设有一个第三方应用程序调用该API的一些数据推到Web应用程序,然后Web应用程序将数据推送到浏览器。

现在假设负载平衡器后面有两台服务器,Web应用程序正在运行。浏览器客户端连接到服务器1以侦听事件。然后,其他应用程序在服务器2上访问/ update_client API。现在,由于两个活动发生在两个不同的服务器上,服务器2如何通知服务器1将数据发送到连接的客户端?

如果我使用自动缩放,并且负载平衡器后面有动态数量的服务器,该怎么办?

+0

如何从基于Node.js的应用程序将数据发送回浏览器? WebSockets?我想你需要在发送数据之前保持某种连接。 – sachinjain024

+0

我从Websocket开始,但它与我的负载均衡器有关。所以我想尝试Server Sent Event。基本上,我们永远保留req对象,所以我们可以稍后写回客户端。 Websocket或服务器发送事件,我认为它是直接连接到负载均衡器后面的服务器之一,并且如果在另一个服务器上发生事件,则需要通知它。 – user1670498

+0

你还有问题吗? – baynezy

回答

2

您需要在服务器后面有某种共享资源,以便他们都知道更新。我在最近写的博客文章中展示了如何使用Redis Pub/Sub。

Server Sent Events with Node JS