已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WebSocket通信,2017.10.26,背景,实时数据游戏聊天SNS(社交网络服务)直播,年轻的年轻人啊,创新无限的未来,常用web实时技术,年轻的年轻人啊,创新无限的未来,在客户端的页面使用隐藏窗口向服务端发出长连接请求。服务器端接到这个请求后作出回应并不断更新连接状态以保证客户端和服务器端的连接不过期。,流,轮询,年轻的年轻人啊,创新无限的未来,轮询,场景再现:客户端:啦啦啦,有没有新信息(Request)服务端:没有(Response)客户端:啦啦啦,有没有新信息(Request)服务端:没有。(Response)客户端:啦啦啦,有没有新信息(Request)服务端:你好烦啊,没有啊。(Response)客户端:啦啦啦,有没有新消息(Request)服务端:好啦好啦,有啦给你。(Response)客户端:啦啦啦,有没有新消息(Request)服务端:。没。没。没有(Response),年轻的年轻人啊,创新无限的未来,长轮询,年轻的年轻人啊,创新无限的未来,长轮询,场景再现:客户端:啦啦啦,有没有新信息,没有的话就等有了才返回给我吧(Request)服务端:额。等待到有消息的时候。来给你(Response)客户端:啦啦啦,有没有新信息,没有的话就等有了才返回给我吧(Request),年轻的年轻人啊,创新无限的未来,流,流技术方案通常就是使用一个隐藏的窗口向服务器端发起一个长连接的请求,服务端接收到这个请求以后做出回应,并不断跟新连接状态以保证客户端和服务端不过期,通过这种机制将服务端的信息源源不断的推向客户端,年轻的年轻人啊,创新无限的未来,存在问题,非真正实时技术使用Ajax方式模拟实时效果,每次客户端和服务器端交互,都是一次HTTP的请求和应答过程,且每次的HTTP请求和应答都带有完整HTTP头信息,增加传输的数据量,年轻的年轻人啊,创新无限的未来,Websocket,Websocket是一种双向通信协议,在建立连接后,websocket服务器和浏览器客户端都能主动向对方发送和接收数据,如同socket;websocket需要类似tcp的客户端和服务端通过握手连接,连接成功后才能相互通信。,年轻的年轻人啊,创新无限的未来,Websocket,年轻的年轻人啊,创新无限的未来,图2.传统http客户端服务器交互,图1.websocket客户端服务器交互,Websocket,年轻的年轻人啊,创新无限的未来,Websocket类似socket的http长连接通信方式,一旦连接建立,后续数据都以帧形式传输,在客户端或服务器断开连接前,不需要客户端和服务器重新发起连接请求,在高并发及负载流量大的情况下,可节省网络带宽资源,且客户端发送和接收信息是在同一个持久连接上发起,实时性优势明显。传统http每次请求-应答都需要客户端服务器建立连接模式。,Websocket,年轻的年轻人啊,创新无限的未来,客户端到服务端,GET/chatHTTP/1.1Host:Connection:UpgradeSec-WebSocket-Key2:129985Y31.P00Upgrade:WebSocketSec-WebSocket-Key1:4146546xW%0l15Origin:8-bytesecuritykey,GET/chatHTTP/1.1:打开阶段握手,使用http协议。Upgrade:websocket,表示请求为特殊http请求,请求的目的是要将客户端和服务端的通信协议从http上升为websocket;Sec-websocket-key、8-bytesecuritykey,客户端向服务端提供的握手信息;,Websocket,年轻的年轻人啊,创新无限的未来,HTTP/1.1101WebSocketProtocolHandshakeUpgrade:WebSocketConnection:UpgradeWebSocket-Origin:WebSocket-Location:ws:/,16-bytehashresponse:服务端解析客户端头信息,生成16位安全密钥返回给客户端,以表明服务端获取了客户端的请求;一旦连接建立,后续就可以通过tcp通信(双向传输数据)。,服务端到客户端,数据通信,年轻的年轻人啊,创新无限的未来,WebSocket的数据在发送时,被组织为依次序的一串数据帧(dataframe),然后进行传送。传送的帧类型分为两类:数据帧(dataframe)和控制帧(Controlframe)。数据帧可以携带文本数据或者二进制数据;控制帧包含关闭帧(Closeframe)和Ping/Pong帧,数据通信,年轻的年轻人啊,创新无限的未来,MASK值:从客户端进行发送的帧必须置此位为1,从服务器发送的帧必须置为0。如果任何一方收到的帧不符合此要求,则发送关闭帧(Closeframe)关闭连接。opcode的值:0 x1代表此帧为文本数据帧,0 x2代表此帧为二进制数据帧,0 x8为控制帧中的连接关闭帧(closeframe),0 x9为控制帧中的Ping帧,0 xA(十进制的10)为控制帧中的Pong帧。Ping/Pong帧:Ping帧和Pong帧用于连接的保活(keepalive)或者诊断对端是否在线。这两种帧的发送和接收不对WEB应用公开接口,由实现WebSocket协议的底层应用(例如浏览器)来实现它。,浏览器支持情况,年轻的年轻人啊,创新无限的未来,主流的浏览器(包括PC和移动终端)现已都支持标准的HTML5的WebSocketAPI,这意味着客户端的WebSoc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年生物质炭、气、油联产技术项目可行性研究报告
- 综合能源岛项目环境影响报告书
- 绿色建筑节能设计与施工方案
- 2026年厦门井下监控设备项目投资分析报告参考范文
- 厂房结构安全与抗震设计方案
- 2026年液压泵相关行业分析报告
- 2026年拆钉钳项目可行性研究报告
- 2026年中国立式吸沙泵行业市场规模及未来投资方向研究报告
- 2026年中国石棉行业行业市场规模及投资前景预测分析报告
- 环境保护检查标准及整改方案范文
- 2025中国电气装备许继集团许继电气校园招聘笔试历年参考题库附带答案详解
- 高中语文高考语文复习+高考中的成语考查+课件
- 2025甘肃庆阳正宁县公安局招聘警务辅助人员40人备考考试题库附答案解析
- 七年级历史上学期期末选择题100题-附答案解答
- 2025广西玉林市自来水有限公司下半年公开招聘21人笔试参考题库附带答案详解
- 低温天气安全教育培训课件
- 整车线束培训资料
- 4.1 10的认识(课件 )数学苏教版一年级上册(新教材)
- 2026年度安全生产工作计划
- 2025山东泰山财产保险股份有限公司总公司及分支机构校园招聘、社会招聘笔试模拟试题及答案解析
- 剪纸社团教学课件
评论
0/150
提交评论