如何在nodejs中推送/通知客户端新数据?

时间:2017-05-30 13:02:17

标签: javascript node.js reactjs

我们说我从数据库或api获取数据。我有一个nodejs服务器,允许我通过端点从那些数据库或api获取数据。我有一个客户端(reactjs)获取数据并在屏幕上显示。

如果有新数据可用,我如何更新我的客户端? 我不是在寻找连续的ajax请求。

1 个答案:

答案 0 :(得分:0)

问题是检测何时发生了数据更改,因此您可以向所有连接的客户端广播一般事件。

通常,进行数据更新的api与需要广播事件的api相同。

想象一下,我们有三个客户端应用程序通过套接字连接到服务器api:app-1,app-2,app-3:

  1. app-1通过api
  2. 进行数据更新
  3. api执行更新,并在成功时向所有连接的客户端广播data updated事件
  4. app-1,app-2和app-3 所有收到data updated事件,并做出相应的反应。
  5. 如果数据更新是独立于你的api,例如通过外部数据api,则事情变得更加复杂:

    • 您可以控制data-api的源代码

      您可以在api和data-api之间创建套接字连接。当data-api检测到数据更改时,它会向您的api发送data updated事件。然后,您的api将此事件转发给连接的客户端,如上所述。

    • data-api是您无法控制的第三方

      您唯一的选择是定期从您的api轮询data-api,并在检测到更改时,将data updated事件广播到所有连接的客户端。虽然这个解决方案涉及轮询,但它既具有高性能又可扩展,因为它只涉及来自api的单个常规调用,无论连接的客户端数量多少。