HTML5 服务器发送事件 (SSE) API 是否只是 HTML5 WebSockets 之上的一个受限的、基于事件的 API?
在我看来,EventSource
只是一个 WebSocket
,它:
- 无法
.send()
数据 - 使用
text/event-stream
格式 - 触发动态命名(服务器定义)事件而不是
onmessage
Web 服务器将事件推送到客户端设备的想法非常有趣。这个 API 有吸引力吗?
我想异步事件模型在与 Node 结合时会很好地工作,但在我的 ASP.NET 世界中没有看到很多这样的用例。
最佳答案
服务器发送事件适用于只需要服务器推送的应用程序,而 Web 套接字适用于需要双向快速通信的应用程序。
Server Sent Events 是一个很好的解决方案的例子是:
- 股票值(value)变化
- 新闻提要
Server Sent Events 做一些 Web Sockets 没有内置的事情,例如自动重新连接和eventIDs。
截至目前,Server Sent 事件还拥有更广泛的 Web 浏览器支持,支持 Safari(仅支持旧版本的 Web Sockets)和 Opera(默认禁用 Web Sockets,并使用旧版本)。
在 Stream Updates with Server-Sent Events 上阅读有关服务器发送事件的更多信息.
关于javascript - HTML5 服务器端事件 : EventSource vs. 包装的 WebSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8499142/