问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

WebSocket的实现原理

发布网友 发布时间:2022-12-25 14:49

我来回答

1个回答

热心网友 时间:2023-10-12 19:37

Websocket是应用层第七层上的一个应用层协议,它必须依赖 HTTP 协议进行一次握手 ,握手成功后,数据就直接从 TCP 通道传输,与 HTTP 无关了。即:websocket分为握手和数据传输阶段,即进行了HTTP握手 + 双工的TCP连接。

下面我们分别来看一下这两个阶段的具体实现原理:

客户端发送消息:

服务端返回消息:

这里值得注意的是Sec-WebSocket-Accept的计算方法
base64(hsa1(sec-websocket-key + 258EAFA5-E914-47DA-95CA-C5AB0DC85B11))
如果这个Sec-WebSocket-Accept计算错误浏览器会提示:Sec-WebSocket-Accept dismatch
如果返回成功,Websocket就会回调onopen事件

Websocket的数据传输是frame形式传输的,比如会将一条消息分为几个frame,按照先后顺序传输出去。这样做会有几个好处:

websocket传输使用的协议如下图:

参数说明如下:

我们了解了websocket的实现原理之后,请看以下golang的实现案例:

html和js使用案例:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
自己改编了几首歌曲要怎样发表 如何申请歌的专利 全款落地40万左右,推荐两款车型,一是奥迪A6L,二是国产红旗HS7_百度... PS圆点如何画出来ps圆点如何画出来图片 广西千米以上高山排名 香港能不能用Q或微信 香港稳定虚拟主机 什么是偏导数为0的点? 想请问一下蹬完动感单车后如何放松肌肉? 动感单车骑完如何拉伸肌肉 求大师解运,不胜感激。男 1991年1月28日亥时。 那我就叫灵犀了怎么回复她? 路由器应该是几个灯亮 王者荣耀王昭君死亡音效是什么? 秋月梨和香水梨有区别吗? 看漫终身免费是几年 李保田骑驴的电视剧叫什么? 李保田张丰毅演的电视剧是哪部(李保田张丰毅合作电视剧) 李保田和姜武拍的电视剧 李保田骑驴的电视剧叫什么名字 你知道刘罗锅的扮演者李保田还演过哪些经典电视剧吗? CF礼券怎么用 CF抽奖抽到礼品卷怎么用 穿越火线武器洗练劵怎么用 华颂电脑好不好? 华颂,宏基,惠普哪款笔记本电脑好,哪款哪型号好?配件什么?哪好? 动漫房间图片不要人要空房间 北京大学自考 人力资源管理专业(专本)都什么科目,怎么学习 ? 干儿子怎么称呼 干儿子如何称呼 我想知道怎么认干儿子的? 关于websocket数据传输 存18万五年农村信用社有多少利息 晋江文学破解版是真的吗 余生为期哪个app可以看 电脑网课回放不清晰怎么办 菽的意思和含义 断桥门窗样角怎设计展架 为什京东么年卡在待付款 神鬼寓言3第一章选择处决谁? 佛眼佛心,代表什么生肖 微信充值小面额缺货怎么处理 怎么回答女生问你多高? 别人问我多高我怎么幽默回答? 买了一个月的新浪微博会员用相册里面的图片做了封面下载了会员的主题等会员过期了这两样还在还能用吗? 可视化系统什么意思 Python数据可视化-误差棒图errorbar 中秋节我的愿望作文 坐标郑州,家里想做个隔断,都有什么材料价格是多少? 如何将微信中的照片导出到电脑上呢? 郑州哪里有卖镂空隔断板的?