客户端访问与来自web服务器的广播数据



我正在寻找技术或技巧来修复新网站的方法。此站点将位于服务器上的读取时间数据显示为内存中的文件或数据。我将使用Node.js作为服务器端。但我无法修复如何获取数据并将其显示给网站用户。因为此数据必须至少每1秒更新一次。我认为它与股票价格页面相似。

我知道有很多方法可以访问数据,比如AJAX、Angular.js、Socket.io。。每一个都有优点和缺点。

在这种情况下,哪个平台或框架是好的?

这最终取决于您对服务器端的控制程度。对于每秒需要刷新的数据,在客户端进行轮询会给浏览器带来相当大的负载。

例如,只需使用众多可用框架中的一个,就可以在某种形式的间隔内发出http请求。这种方法的缺点包括:

  • 当用户在页面上时,需要始终在后台运行间隔
  • 需要为每个间隔发出http请求,以检查数据是否已更改
  • 数据的比较也需要由浏览器执行,每隔1秒可能会非常繁重

如果您有一些服务器控制,建议轮询服务器上的数据源,即使用代理微服务,并使用服务器执行更改检查,并且仅在数据发生更改时向客户端发送数据

您可以使用Websockets通过"推送"样式的消息来传达这些更改,而不是让客户端浏览器来完成繁重的工作。流程将类似于:

  • 服务器在新客户端开始侦听其套接字时开始轮询
  • 服务器为每个轮询间隔发出http请求,并对每个结果进行比较
  • 当结果发生更改时,服务器向所有连接的客户端广播带有新数据的套接字消息

这样做的主要优点是客户端所需要做的就是"连接并侦听"。这甚至适用于您不控制的数据源——您提供的服务器可以在向客户端发送消息之前执行任何所需的数据操作,而数据源只需要在请求时提供数据。

EDIT:刚刚发布了一个实现此目标的小型库:Mighty Polling⚡️套接字服务器。还年轻,如果使用,请检查是否有用。

最新更新