Comet是一组技术原则/通信模式,通常使用HTTP long-poll实现。它使服务器能够按需向浏览器发送数据(即服务器推送)。当前的comet实现在客户端需要一些复杂的Javascript和服务器端的支持(对于长期保存的请求)。
服务器发送事件是一个标准的(HTML5)浏览器API,用于支持这种随需应变的服务器推送。您可以将服务器发送的事件视为使用复杂的Javascript完成的操作,并将其下推到浏览器本身。
WebSockets允许浏览器与支持WebSocket的服务器建立持久的全双工/双向连接。它不需要客户机定期向服务器发出HTTP请求来维护连接,就像Ajax/long-poll那样。一旦建立了连接,与普通HTTP/HTTP长轮询的开销相比,每个消息的开销非常低(几个字节)。您可以使用WebSockets进行高效的服务器推送,但这只是一个应用程序。
还有一些库构建在Ajax/Comet/WebSockets传输层上,以提供会话管理、通道、广播、pubsub等功能。CometD就是一个例子。另一个流行的例子是socket.io。如果WebSockets可用于底层传输,则两者都支持WebSockets,如果WebSockets不可用,则支持标准Ajax/long-poll。
概述 客户端代码 概述 建立连接 open事件 message事件 error事件 自定义事件 close方法 数据格式 概述 data:数据栏 id:数据标识符 event栏:自定义信息类型 retry:最大间隔时间 服务器代码 参考链接 概述 传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据。比如,每当收到新的电子邮件,服务器就向浏览器发送一个“
概述 客户端代码 概述 建立连接 open事件 message事件 error事件 自定义事件 close方法 数据格式 概述 data:数据栏 id:数据标识符 event栏:自定义信息类型 retry:最大间隔时间 服务器代码 参考链接 概述 传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据。比如,每当收到新的电子邮件,服务器就向浏览器发送一个“
http://www.html5rocks.com/en/tutorials/eventsource/basics/ 但是,我不明白一个重要的概念--是什么触发了服务器上导致消息发送的事件? 换句话说--在HTML5示例中--服务器只发送一次时间戳: 如果我建立一个实际的例子--例如,一个Facebook风格的“墙”或一个股票报价器,在这个例子中,每当某个数据发生变化时,服务器就会向客户机“推送”
我试图让服务器发送的事件与Mozilla Firefox一起工作。给定一个Spring Boot的网络服务 使用Chrome浏览器或Edge(始终是最新版本)可以正常工作。我可以在网络分析器选项卡中看到未完成的请求,并且每秒都会显示一个新的时间戳。 然而,当我使用Firefox(84.0.2或更早版本)时,请求也会显示在网络选项卡中,但不会显示响应头或流数据。当我终止Spring后端时,Firef
我到处查看,试图找出传输级别上服务器发送的事件是什么。我还是不确定。 这两个来源都声称它们“只是http”。然而,我至少可以用两种方式来解释这种说法。 当我第一次阅读这些文章时,我假设这意味着服务器在同一端口上向客户机发起请求,之前已经从客户机向服务器发出了一些其他常规http请求。这应该适用于普通家庭路由器的地址转换,但我想知道防火墙在公司环境中的含义。 然而,后来,我尝试在Silverligh
我们不允许对书籍、工具、软件库等寻求建议的问题。您可以编辑问题,以便用事实和引文来回答。 我有一个桌面客户端和一个服务器端,都是用Java实现的。服务器端位于Tomcat上。 现在,我希望检查使用服务器发送的事件,虽然Tomcat可以在服务器上使用它,但我不知道如何从客户端执行它。所有的实现都使用Javascript,如果您的客户机是Javascript客户机,这很好。我的不是。 所以,我的问题是