javascript - HTML5 服务器端事件 : EventSource vs. 包装的 WebSocket

标签 javascript html websocket server-sent-events

HTML5 服务器发送事件 (SSE) API 是否只是 HTML5 WebSockets 之上的一个受限的、基于事件的 API?

在我看来,EventSource 只是一个 WebSocket,它:

  1. 无法.send()数据
  2. 使用text/event-stream格式
  3. 触发动态命名(服务器定义)事件而不是 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/

相关文章:

javascript - 动态添加可点击行到表格

javascript - 将正确的 jQuery 选择器传递给对象

html - 奇偶元素的左右浮动

javascript - HTML5 websocket与nodejs的通信延迟

javascript - 分配服务属性的值(Angularjs)

javascript - 带有 python 和 beatifulsoup4 的 selelenium 是否允许像 jsoup 中那样显式地从 DOM 加载隐藏元素?

html - 使用 CSS 指定列

html - CSS 文件会发送到浏览器吗?

c++ - 将 Websocket 与 Poco 库连接

javascript - Ratchet PHP Websocket : Private messaging (control who messages are being sent to)