技术解析

一种基于 HTTP 的伪双工通信
0
2021-06-03 17:38:21
idczone

一般提到 Web 的双工通信,第一反应都是 WebSocket,但 WebSocket 与其他 HTTP 业务往往不能很好的融合在一起。而直接使用 HTTP 轮询,HTTP 头又太大了,哪怕上了 HTTP2,也是浪费资源。

Server-sent events 就是一种很好的基于 HTTP 的单向长连接通信方式。https://developer.mozilla.org/zh-CN/docs/Web/API/Server-sent_events

比如日志流展示业务,只需要使用 SSE 就行了,完全不需要上 WebSocke抗投诉服务器t 。

所谓双工通信,就是服务端拥有随时推送消息给客户端且客户端拥有随时推送消息给服务端的能力。使用 SSE 就可以让服务端可以随时推送消息给客户端,而客户端推送消息给服务端,直接 HTTP 请求就行。

这种伪双工通信的好处就是完全基于 HTTP,负载均衡、反向代理以及客户端的调用逻辑都可以使用现成的生态,不需要再去基于 WebSocket 搞一套代码。

刷推特看到有人使用 SSE 做日志流推送业务有感而发。所以抛砖出来供大家一观。


关键是没什么生态,,SSE 基本没人用。
WebSocket 天生为 Web 而生和 HTTP 结合的比较好,不太清楚不能很好融合指的是?
另外 WebSocket 久经考验,比较指的信赖。

确实,SSE 很少看到有人用,我也是大概一年前才知道有这个东西的。
WebSocket 和 HTTP 结合的我感觉也一般吧,比如 Serverless 平台实现 WebSocket 超级麻烦。只针对新手而言,配置反代就是个问题了。还有一个,就是 WebSocket 特别容易被滥用。HTTP 也不走了,直接在 WebSocket 上封装一个交互协议出来了。
数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服