如何为React + axios实现长轮询

19

我正在使用React和axios在客户端与API进行通信。我是JavaScript的新手。

如何实现长轮询以便在网页上获得近乎实时的更新?

当后端是JSON REST API时,是否有更好的方法在页面上进行实时更新?我应该研究使用WebSockets还是服务器端事件,或者长轮询就可以了?


6
对于网页的常规实时更新,我不知道有哪种情况下轮询比持续的 WebSocket 或 socket.io 连接更有效。相关答案:Long-polling vs websocketAjax vs Socket.io - jfriend00
你标题中的问题和最后提出的问题是不同的。能否请您更新帖子,提出一个单一的问题,这样别人才能尝试回答正确的问题。 - Tom
1个回答

2

您的用例可能有另一种更好的方法:服务器发送事件(SSE)。

简而言之,SSE是客户端向服务器发出的简单GET请求 - 但是服务器在处理完请求后不会关闭连接。相反,HTTP连接保持打开状态,服务器能够多次向客户端写入数据,这些数据实时显示。

有关SSE与Websockets的比较信息,请阅读Alex Recarey在SO上对“WebSockets vs. Server-Sent events/EventSource”的 answer


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接