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

时间:2017-10-15 13:57:47

标签: javascript web server

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

我知道有很多方法可以访问AJAX,Angular.js,Socket.io等数据。 每个人都有利弊。

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

1 个答案:

答案 0 :(得分:0)

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

例如,您可以通过使用许多可用框架之一在某种形式的间隔内发出http请求来实现。这种方法的缺点包括:

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

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

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

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

这方面的主要优点是所有客户需要做的是连接和监听"。这甚至适用于您无法控制的数据源 - 您提供的服务器可以在向客户端发送消息之前执行所需的任何数据操作,源只需要在请求时提供数据。

编辑:刚刚发布了一个实现此目标的小型库:Mighty Polling ⚡️ Socket Server。仍然年轻,如果使用,请检查您的使用。