我的应用程序是用2+和NodeJS构建的。其中一个页面基本上是显示公司当前任务的仪表板,该仪表板整天在电视上向公司员工显示。
我最初尝试过websocket,但在连接可靠性方面遇到了问题,因为有时板将永远不会更新,因为websocket将失去连接。我永远也找不出这个问题,并且读到websockets可能是不可靠的。
目前,我只是每15秒运行一个http调用,从后端检索一组新的数据。但是,随着应用程序的扩展,数据传输的成本可能会很高。
我最近才听说过SSE,但对此一无所知。
目前,我的下一个计划是设置一个“最后更新”状态检查,其中我仍然每15秒运行一个http调用,从前端传递一个“最后更新”时间,并将其与后端“最后更新”时间(每当任务被更改时进行更新)进行比较,并且只有在前端的时间过时时才返回数据,以减少数据传输。
这听起来是个好主意吗,还是我应该再试一次websockets或者SSE?
发布于 2018-09-18 04:59:00
我最初尝试过websocket,但在连接可靠性方面遇到了问题,因为有时板将永远不会更新,因为websocket将失去连接。
处理连接丢失时的事件并重新连接它。
我永远也找不出这个问题,并且读到websockets可能是不可靠的。
不要让你在互联网上看到的一些随意的胡说八道妨碍你解决这个问题。Web套接字和其他任何东西一样可靠。而且,和其他任何东西一样,它们可以断开连接。而且,和许多新的API一样,它们把重新连接的逻辑留给你.应用程序开发人员。如果您根本不想处理它,那么NPM上有许多用于自动重新连接Web套接字的包,这正是我建议的。它们处理断开连接的事件,并立即重新连接。
目前,我只是每15秒运行一个http调用,从后端检索一组新的数据。但是,随着应用程序的扩展,数据传输的成本可能会很高。
可能是的,是的。
我最近才听说过SSE,但对此一无所知。
从我们对你的问题知之甚少的情况来看,SSE听起来是正确的选择。SSE最适合:
大多数实现都会为您重新连接,如果实际发生断开连接,它甚至支持一种拾取其中断位置的方法。
发布于 2018-09-19 12:36:30
如果您只需要将数据从服务器推送到客户端,则可能值得查看服务器发送的事件。
您可以查看本文(https://streamdata.io/blog/push-sse-vs-websockets/)和此视频(https://www.youtube.com/watch?v=NDDp7BiSad4),以了解这项技术以及它是否适合您的需求。它们总结了SSE和WebSockets的优缺点。
https://stackoverflow.com/questions/52378066
复制相似问题