【问题标题】:Client access vs broadcast data from web server客户端访问与来自 Web 服务器的广播数据
【发布时间】:2018-03-27 02:52:36
【问题描述】:

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

我知道有很多方法可以访问 AJAX、Angular.js、Socket.io 等数据。 各有利弊。

在这种情况下哪个平台或框架比较好?

【问题讨论】:

    标签: javascript web server


    【解决方案1】:

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

    例如,您可以通过简单地使用众多可用框架之一在某种形式的时间间隔内发出 http 请求来做到这一点。这种方法的缺点包括:

    • 间隔需要在用户在页面上时一直在后台运行
    • 需要在每个时间间隔发出http请求以检查数据是否发生变化
    • 数据的比较也需要由浏览器执行,以 1 秒为间隔可能相当繁重

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

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

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

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

    编辑:刚刚发布了一个实现此目标的小型库:Mighty Polling ⚡️ Socket Server。还年轻,用得着考究。

    【讨论】:

      猜你喜欢
      • 2012-07-18
      • 1970-01-01
      • 2016-05-24
      • 2018-05-16
      • 1970-01-01
      • 2017-07-07
      • 2012-12-07
      • 2018-03-04
      • 2019-05-31
      相关资源
      最近更新 更多