问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

WebSocket 通信流程详解

创作时间:
作者:
@小白创作中心

WebSocket 通信流程详解

引用
1
来源
1.
https://geek-docs.com/websocket/websocket-tutorials/websocket-communication-proces.html

WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器之间的数据交换变得更加简单,允许服务器主动向客户端推送数据。本文将从WebSocket握手操作、传输原理和端点的生命周期事件三个方面详细介绍WebSocket的通信流程。

WebSocket握手操作

基于HTTP调用完成握手操作,如下图所示,客户端首先发起一个HTTP请求到服务端,该请求的特殊之处在于在Header里面包括一个upgrade字段,告诉服务端想升级成WebSocket协议。

服务端收到后就会响应一个握手的确认,发送switching表示允许客户端向WebSocket协议转换。

这样,客户端和服务端就可以相互发送消息(message)了。

WebSockt传输原理

  • 协议升级后,继续复用HTTP的底层Socket完成后续通讯
  • Message底层会被切成多个Frame传输
  • 编程时只需要操作Message,无需关心Frame
  • 框架底层完成TCP网络I/O,WebSocket协议解析,开发者无需关心

WebSocke端点的4个生命周期事件

  • 打开事件: 此事件发生在端点建立新连接时并且在任何其他事件发生之前。
  • 消息事件: 此事件接收 WebSocket 对话中另一端发送的消息。它可以发生在 WebSocket 端点接收了打开事件之后并且在接收关闭事件关闭连接之前的任意时刻。
  • 错误事件: 此事件在 WebSocket 连接或者端点发生错误时产生。
  • 关闭事件: 此事件表示 WebSocket 端点的连接目前正在部分地关闭,它可以由参与连接的任意一个端点发出。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号