我是否应该使用Web套接字从服务器或标志中提取数据并使用该标志发送数据的API请求?

时间:2017-07-21 15:27:27

标签: websocket

我正在开发一个基本上是客户反馈分析仪表板的项目。仪表板上的图表很少,每个图表的数据都是通过API请求从服务器获取的。

现在每次刷新页面时都会更新仪表板。我希望在系统中有新的反馈时立即更新它。我很困惑,我是否使用websockets为每个图形发送数据或只是一个标志,并使用该标志通过API请求获取数据。

就像,facebook / twitter那样。他们会告诉您有关新帖子/推文的信息,当您点击该按钮时,您的Feed /墙壁会更新。

1 个答案:

答案 0 :(得分:0)

如果你想"推"从服务器到客户端的数据,您希望数据及时显示(例如,在服务器上可用的10-20秒内),那么您将需要实现某种"推送&#34 ;解决方案,只要有新数据要发送,服务器就可以有效地将数据推送到客户端。

有几种可能的方法:

  1. 的WebSockets
  2. socket.io
  3. 服务器发送的事件
  4. 特定于移动平台的推送(Android和iOS)
  5. 对于在浏览器中运行的通用解决方案,您将需要使用前三个中的一个。 socket.io建立在webSockets之上(它只是添加了更多功能),所以在架构上它们是相似的。

    服务器发送的事件相当新(仅限现代浏览器),仅用于单向通信(从服务器到客户端)。无论如何,webSockets都可以用于通信。

    我个人推荐socket.io,因为它提供的功能(例如自动客户端重新连接)和简化的消息传递层。您可以看到socket.io和webSockets here之间的功能差异。使用socket.io,客户端在加载网页时建立与服务器的连接,并且该连接是持久的。建立连接后,客户端或服务器可以随时以非常有效的方式向另一方发送消息。

    其他有用的参考资料:

    Push notification | is websocket mandatory?

    websocket vs rest API for real time data?

    Why to use websocket and what is the advantage of using it?

    What are the pitfalls of using Websockets in place of RESTful HTTP?

    Ajax vs Socket.io