当前位置:首页 > 每日看点

可以用不关闭的 HTTP 连接,来替代 WebSocket 吗?

卡卷网2年前 (2024-12-27)每日看点284

刚好在过去的职业生涯里多次使用到了各种服务端推送技术。给大家介绍我常用的 3 种技术——websocket,sse,httpstream。

websocket:概念提出于 2008 年。次年草案,2010 年由苹果率先支持草案。2011 年标准化(RFC6455)。2012 年 api 标准化。

sse:概念提出得更早2006 年,但进度明显比 websocket 慢,标准化也是 2011 年,但 2015 年才得到主流浏览器的支持,早期浏览器通过 long polling polyfill 支持 sse,2019年前后主流浏览器已切换到 http-streaming 对 sse 进行支持。

HTTP-streaming:服务端通过三板斧——

Content-Type: text/event-stream Connection: keep-alive Transfer-Encoding: chunked

告诉浏览器,我一会儿还要不断 response,切莫关闭连接。2018 年标准化,2020 年各大主流浏览器支持。(可以看到基本上是支持力度最高的那个)

三者的区别在于:

  • websocket 是真正的双向通信,可以实现任意时间客户端向服务端发送数据,服务端向客户端发送数据,任意时间。

可以用不关闭的 HTTP 连接,来替代 WebSocket 吗?  第1张

Websocket

  • sse 是单向通信,只能是服务端向客户端通信,通用性较差,且是在 stream 协议上封装的协议比如 event-id, data。 支持重连,跟ws一样不需要你去碰chunk这一层。

可以用不关闭的 HTTP 连接,来替代 WebSocket 吗?  第2张

sse

  • streaming 相比 sse 更加底层也更加通用,可能需要先手动解析 chunk,一个大的 json 有可能会被分片成多个 chunk,这就需要客户端拼接解析才能得到 json,比 sse 麻烦,但优势在于客户端可以像普通的 post 请求那样发送一个 json 到服务端,服务端根据入参轮询 缓存/中间件/数据库/订阅 mq,然后持续性发送 response。相比 sse,stream 的优势可以先由客户端 post 一个 request,然后不断地read response。

可以用不关闭的 HTTP 连接,来替代 WebSocket 吗?  第3张

http streaming

总结:

ws 可以是客户端和服务端任意端发起数据传输,但通常一个应用或者一个页面只有一个 ws 连接,意味着所有请求都复用这个连接,这就要集中化处理各式各样的请求,编程难度较大,对于应用协议的设计功力是一种考验。

sse 编码简单,但只能是服务端单向向客户端传输数据,如果想先让客户端 post 一个请求,服务端根据请求的参数再进行选择性推送,只能寻求更加底层的 stream 了。

streaming 客户端编码难度较大,特别是 chunk 的处理,类似于粘包问题。但对于服务端来说编码会更加简单,就是普通的 post 接口,对于 HttpReuestWriter w,for 循环多次调用 w.write(xxx) 即可。

最终选用哪种技术就看需求了。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/5710.html

分享给朋友:

相关文章

微软浏览器Edge 现已提供新的快速启动功能

微软浏览器Edge 现已提供新的快速启动功能

微软 Edge 现已提供新的快速启动功能10月24日消息 微软现已为 Windows 平台 Edge 浏览器 Canary 版本提供了一项新功能,称之为 “启动加速”,正如字面意思,它提升了 Edge 启动时的速度,减少等待时间。目前大部分…

你手机里有哪些堪称神器的 App?

你手机里有哪些堪称神器的 App?

嗨嗨,我是赢酱~ 首先我认为对于我们有用的提升自我的都是手机里的神器 App。 一个人应该什么样子呢?在我从女孩子的角度看来,自律,上进,会打扮,情商高,会挣钱,独立,落落大方,这才是应该有的样子,我们可以借助手机不断学习改变 今天给大家准…

计算机专业不干互联网不热爱技术,还能转行干什么?

转行的思路,无非也就是那几个。 我们顺着每个思路,一路捋一遍,基本上,大致可行的方向,也就有了。 一、跟对口职业和岗位业务链条相邻的职业和岗位计算机专业如果找到了对口的技术岗位,跟技术工作联系最紧密的岗位是什么? 产品经理。当然,大多数产品…

小米15就要来了,不知道小米15值不值得买?

小米15就要来了,不知道小米15值不值得买?

俗话说得好,好饭不怕晚,看似有点姗姗来迟的小米15系列,一官宣就迅速登上热搜。 在此次小米14发布会上,雷军曾说过小米14将是最后一代3999起的旗舰,那么这一次涨价了的小米15,值不值得买呢?下面为大家总结一下小米15将会有哪些升级点:…

数字人民币为什么又不火了?

我完全不懂行。 我一开始以为,数字人民币,是对我银行里的每一分钱,都赋予一个独一无二的数字编码。 我要用一块钱买矿泉水,它就从我的存款中随机选取一百个一分钱,组合成一块钱,支付给商家。 我花一百块钱吃饭,它就随机选取一万个一分钱,组合成一百…

有哪些网站,一旦知道,你就离不开了?

有哪些网站,一旦知道,你就离不开了?

这六个网站,一旦用过,基本上是离不开了。都是我超爱的一些网站,基本上每天都用。 1 地图生成器 第一个,我要给大家推荐的是地图生成器。可以下载到各省,各市,各县的svg格式的地图素材。 这些素材导入PPT中都是可以编辑的。 可以单独更改颜色…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。