在什么情况下,Ajax长/短轮询比HTML 5 WebSocket更可取?

在什么情况下,Ajax长/短轮询比HTML 5 WebSocket更可取?

我正在为朋友构建一个小的聊天应用程序,但不确定如何及时获取信息,而这不是手动的,也不像强制页面刷新那样简单。

目前,我正在使用简单的Ajax实现这一点,但这有一个缺点,就是在短时间过去时,经常会碰到服务器。

在研究长/短轮询时,我遇到了HTML 5 WebSocket。这,这个似乎易于实现,但我不确定是否存在一些隐藏的缺点。例如,我认为WebSocket只受某些浏览器的支持。我应该注意到WebSocket还有其他缺点吗?

既然这两种技术似乎都在做同样的事情,那么在哪种场景中,人们更愿意使用一种而另一种呢?更具体地说,HTML 5 WebSocket是否使Ajax长/短轮询过时了,还是有令人信服的理由选择Ajax而不是WebSocket?


慕婉清6462132
浏览 956回答 3
3回答

沧海一幻觉

您忽略的一种竞争技术是服务器发送的事件/事件源。什么是长轮询、WebSocket、服务器发送事件(SSE)和Comet?对所有这些都有很好的讨论。请记住,在服务器端,其中一些比其他更容易集成。

四季花海

对于聊天应用程序或与服务器经常对话的任何其他应用程序,WebSockets是最好的选择。但是,您只能使用WebSockets使用支持它们的服务器,这样可能会限制您在无法安装所需库时使用它们的能力。在这种情况下,您需要使用Long Polling以获得类似的功能。
打开App,查看更多内容
随时随地看视频慕课网APP