Heartbeat
Upgrade: websocket
抓包观察
使用 chrome 开发者工具,观察 WebSocket 通讯流程
传输原理
协议升级后,继续复用 HTTP 的底层 socket 完成后续通讯
message 底层被切分成多个 frame 帧传输
编程时只需操作 message,无需关心 frame
框架底层完成 TCP 网络 I/O,WebSocket 协议解析,开发者无需关心
通讯流程!
22222222222
message 与 frame
传输原理2
传输原理1
WebSocket协议与交互
websocket通讯流程
//build websocket object with ws api ws = new WebSocket("ws://loclahost:7777/ws") ws.onopen = function(evt){ print("OPEN"); } ws.onclose = function(evt) { print("CLOSE"); ws = null; }
客户端调用ws 建立connection
webSocket 的传输单位是message
传输原理:
底层还是给予 socket
打包转换成小包处理
websocket前后端交互
WebSocket传输原理
协议升级后,继续复用HTTP的底层socket完成后续通讯
message底层被切分成多个frame帧传输
编程时只需要操作message,无需关心frame
框架底层完成TCP网络I/O,WebSocket协议解析,开发者无需关心
WebSocket通讯流程
WebSocket协议传输原理
WebSocket协议传输原理
客户端请求头中带upgrade字段表明需要升级http协议到websocket协议
WebSocket协议本身是基于Http协议调用完成的。
客户端首先发起一个Http请求到服务端,在header中带一个upgrade字段,告诉服务端把http协议升级为WebSocket协议。
服务端收到请求之后,就会给客户端一个握手的确认,switching的意思就是我允许你向WebSocket协议转换。一旦完成协商之后,客户端与服务端之间的连接是不会中断的。
客户端可以给服务端发送基于WebSocket的message消息
服务端也可以主动给客户端发送基于WebSocket的message消息
WebSocket中通信的单位就是Message消息。
upgrade 提出升级类型为socket
客户端请求头中带upgrade字段表明需要升级到websocket协议