ServiceStack:通过WebSockets选择服务器发送的事件

时间:2014-08-21 15:12:51

标签: websocket servicestack server-sent-events

正在查看提及新SSE功能的最新发行说明。这个功能绝对是很棒的,并且似乎是与浏览器相反的长轮询。

我是所有这一切的新手,但WebSockets似乎是双向的最佳方式,其中SSE只是浏览器的单向。 IE并不支持SSE,但在过去的两三个版本中都支持WebSockets。

我只是想知道在WebSockets上选择SSE的原因。

1 个答案:

答案 0 :(得分:4)

支持服务器发送事件的原因是outlined in the Chat demo project

Server Sent Events(SSE)是一个优雅的web technology,用于有效地从任何HTTP服务器接收推送通知。它可以被认为是长轮询和单向WebSockets之间的混合,并且包含许多优点:

  • 简单 - 服务器发送事件只是任何HTTP服务器都可以支持的单个长期HTTP请求
  • 高效 - 每个客户端使用单个TCP连接,每条消息都可以避免HTTP连接和标头often faster than Web Sockets的开销。
  • 有弹性 - 浏览器会自动检测连接何时断开并自动重新连接
  • 可互操作 - 因为它只是普通的HTTP,它可以用您喜欢的HTTP工具进行内省,甚至可以通过HTTP代理工作(关闭缓冲和检查编码) )。
  • 支持得好 - 作为网络标准,除了can be enabled with polyfills的IE之外,所有主流浏览器都支持它。

即。它是一个非常简单和优雅的Web Standard,具有比WebSockets更好的HTTP保真度,非常适合在ServiceStack和ServiceStack中运行的服务器推送通信。 ASP.NET和SelfHosts无需任何额外的.NET依赖项或要求主机Windows Server启用WebSockets支持即可使用。 IE支持can be enabled with polyfills

以后可能会支持WebSockets,但这可能需要Windows Server that supports WebSockets的其他外部依赖关系和要求。