use*_*672 3 javascript html5 websocket server-sent-events
HTML5服务器发送事件(SSE)API是否仅仅是基于事件的受限API,位于HTML5 WebSockets之上?
在我看来,EventSource只是一个WebSocket:
.send()数据text/event-stream格式onmessageWeb服务器将事件推送到客户端设备的想法非常有趣.这个API有牵引力吗?
我想,异步事件模型在与Node结合时会很漂亮,但在我的ASP.NET世界中没有看到很多用例.
服务器发送事件在仅需要服务器推送的应用程序中非常有用,而Web套接字适用于需要双向快速通信的应用程序.
服务器发送事件是一个很好的解决方案的示例是:
Server Sent Events执行Web Sockets中未内置的更多操作,例如自动重新连接和eventID.
截至目前,Server Sent事件还具有更广泛的Web浏览器支持,支持Safari(仅支持较旧的Web Sockets草稿)和Opera(默认情况下禁用Web套接字,并使用较旧的草稿).
了解更多关于服务器发送活动流的更新与服务器发送的事件.
除了乔纳斯所说的,协议完全不同.
The WebSocket Protocol(RFC 6455)作为HTTP连接启动,然后使用握手升级与新协议的连接.这是一种使用框架,消息类型等的二进制协议.
Server-Sent Events是一个长时间运行的HTTP请求保持打开状态.服务器以简单的基于文本的格式(UTF-8编码)发送消息,由\n\n.分隔.一个消息有字段event(事件类型), ,data,id和可以任选地包括注释.
一个主要区别是安全模型.使用WebSockets,默认设置是让任何人连接.必须在服务器端根据Origin标头拒绝连接.
另一方面,SSE更接近HTTP并使用同源策略.默认情况下,您只能向同一主机和端口发出请求.将来可以使用CORS来进行跨域SSE请求.截至今天,浏览器尚未实现此功能.
这两种协议采用不同的方法,因为它们解决了不同的问题.
| 归档时间: |
|
| 查看次数: |
2795 次 |
| 最近记录: |