您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

WebSockets与服务器发送的事件/ EventSource

WebSockets与服务器发送的事件/ EventSource

Websocket和SSE(服务器发送事件)都能够将数据推送到浏览器,但是它们不是竞争技术。

Websockets连接既可以将数据发送到浏览器,也可以从浏览器接收数据。可以使用websockets的应用程序的一个很好的例子是聊天应用程序。

SSE连接只能将数据推送到浏览器。在线股票报价或Twitter的更新时间表或提要是可以从SSE中受益的应用程序的很好示例。

实际上,由于SSE可以完成的所有事情也都可以通过Websockets完成,因此Websockets得到了更多的关注和喜爱,并且与SSE相比,更多的浏览器支持Websockets。

但是,对于某些类型的应用程序来说,它可能会显得过大,并且使用诸如SSE之类的协议可以更轻松地实现后端。

此外,可以将SSE填充到不仅使用JavaScript本身不支持它的旧版浏览器中。可以在Modernizr github页面上找到SSE polyfills的一些实现。

HTML5Rocks在SSE上有一些很好的信息。从该页面

服务器发送的事件与WebSockets

为什么选择通过WebSockets发送服务器发送的事件?好问题。

SSE被遮盖的原因之一是因为后来的API(如WebSocket)提供了更丰富的协议来执行双向全双工通信。对于游戏,消息传递应用程序以及需要双向双向实时更新的情况,拥有双向通道更具吸引力。但是,在某些情况下,不需要从客户端发送数据。您只需要某些服务器操作的更新即可。几个例子是朋友的状态更新,股票行情自动收录器,新闻提要或其他自动数据推送机制(例如,更新客户端Web sql数据库或IndexedDB对象存储)。如果您需要将数据发送到服务器,则XMLHttpRequest始终是朋友。

SSE通过传统的HTTP发送。这意味着它们不需要特殊的协议或服务器实现即可工作。另一方面,WebSockets需要全双工连接和新的Web Socket服务器来处理协议。另外,服务器发送的事件具有WebSocket设计上缺少的各种功能,例如自动重新连接,事件ID和发送任意事件的功能

其他 2022/1/1 18:17:19 有533人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶