首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动更新不断打开的仪表板页时,Websockets、SSE或HTTP

自动更新不断打开的仪表板页时,Websockets、SSE或HTTP
EN

Stack Overflow用户
提问于 2018-09-18 02:30:08
回答 2查看 1.7K关注 0票数 2

我的应用程序是用2+和NodeJS构建的。其中一个页面基本上是显示公司当前任务的仪表板,该仪表板整天在电视上向公司员工显示。

  • 它很少被手动刷新或重新加载。
  • 任务由另一台计算机的工作人员每5-10分钟更新一次。
  • 任何任务更新后,都需要尽快更新仪表板上的任务。
  • 在更新仪表板时,在任务更新之后,App应该限制数据传输。

我最初尝试过websocket,但在连接可靠性方面遇到了问题,因为有时板将永远不会更新,因为websocket将失去连接。我永远也找不出这个问题,并且读到websockets可能是不可靠的。

目前,我只是每15秒运行一个http调用,从后端检索一组新的数据。但是,随着应用程序的扩展,数据传输的成本可能会很高。

我最近才听说过SSE,但对此一无所知。

目前,我的下一个计划是设置一个“最后更新”状态检查,其中我仍然每15秒运行一个http调用,从前端传递一个“最后更新”时间,并将其与后端“最后更新”时间(每当任务被更改时进行更新)进行比较,并且只有在前端的时间过时时才返回数据,以减少数据传输。

这听起来是个好主意吗,还是我应该再试一次websockets或者SSE?

EN

回答 2

Stack Overflow用户

发布于 2018-09-18 04:59:00

我最初尝试过websocket,但在连接可靠性方面遇到了问题,因为有时板将永远不会更新,因为websocket将失去连接。

处理连接丢失时的事件并重新连接它。

我永远也找不出这个问题,并且读到websockets可能是不可靠的。

不要让你在互联网上看到的一些随意的胡说八道妨碍你解决这个问题。Web套接字和其他任何东西一样可靠。而且,和其他任何东西一样,它们可以断开连接。而且,和许多新的API一样,它们把重新连接的逻辑留给你.应用程序开发人员。如果您根本不想处理它,那么NPM上有许多用于自动重新连接Web套接字的包,这正是我建议的。它们处理断开连接的事件,并立即重新连接。

目前,我只是每15秒运行一个http调用,从后端检索一组新的数据。但是,随着应用程序的扩展,数据传输的成本可能会很高。

可能是的,是的。

我最近才听说过SSE,但对此一无所知。

从我们对你的问题知之甚少的情况来看,SSE听起来是正确的选择。SSE最适合:

  • 偶数数据
  • 可以以某种方式序列化为文本的数据(JSON很好,但不要base64编码大型二进制流,因为这样会使它们太大)
  • 单向消息,从服务器到客户端

大多数实现都会为您重新连接,如果实际发生断开连接,它甚至支持一种拾取其中断位置的方法。

票数 1
EN

Stack Overflow用户

发布于 2018-09-19 12:36:30

如果您只需要将数据从服务器推送到客户端,则可能值得查看服务器发送的事件。

您可以查看本文(https://streamdata.io/blog/push-sse-vs-websockets/)和此视频(https://www.youtube.com/watch?v=NDDp7BiSad4),以了解这项技术以及它是否适合您的需求。它们总结了SSE和WebSockets的优缺点。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52378066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档