这个问题是这个问题真的很相似:What is the difference between web sockets, long polling, server-sent events and forever frame?Forever-frame和服务器发送的事件有什么区别?
然而,这个问题的答案并没有提到SSE和永远帧之间的差异。
让我给你简单的解释一下。
关于SSE,系统真的很像Comet,但与Comet不同的一点是数据发送后没有断开连接。 因此,从服务器到客户端的连接是长期存在的,客户端接收整个数据的一系列片段。
另一方面,永远的框架似乎与我非常相似。在Forever框架中,首先客户端收到包含iframe标签的页面,在隐藏的iframe内建立一个长期连接。然后客户端接收来自服务器的分块数据,并在客户端已有的第一个文档中使用一些功能来操作DOM。
我假设区别是Forever-frame在机制中使用iframe标记,但SSE不能和SSE可以通过更多方式实现。 我对不对?
感谢您对这些技术的概述。但是,在某些方面仍然不明确。 1:我不确定长轮询和XHR轮询之间的区别。我搜索了“XHR轮询”一词,但我找不到任何有关它的好消息。正如您所提到的,不同之处在于,长轮询使用XMLHttpRequest1,其中XML轮询执行XMLHttpRequest2吗? 2:在XHR轮询时,哪一方是从readyState发出的信号?从服务器端?还是客户? 3:你是什么意思的“自动重新连接”?这意味着服务器发送数据后,连接是否中断一次? –
@KazuyaTomita是不是太厚脸皮建议买我的书 - 有足够的空间来覆盖这些主题彻底:-) 正常长轮询和之间有什么区别,我称之为“XHR”被前者只是使用的readyState == 4,而后者使用readyState == 3。 readyState是客户端JavaScript XMLHttpRequest2 API的一部分。 –
因此,您对关于答案的长轮询和XHR轮询的解释的陈述是错误的,因为两者都根据您的其他评论使用XMLHttpRequest2?如果没关系,请给我任何关于question3的简要解释。 –