与基于HTTP的技术不同,WebSocket具有生命周期,此生命周期由WebSocket协议进行支撑。
例如:在Servlet技术中,底层协议仅仅定义了简单的请求/响应交互,此交互完全独立于下一次交互。相反,WebSocket协议定义了客户端和服务器间长时间存活的专用TCP连接。
WebSocket协议定义了WebSocket连接上往返传输的数据的各个块的格式。一旦连接建立,这些传输的元数据帧描述了其用途。WebSocket协议中包含两种主要类型的帧:控制帧和数据帧。
- 控制帧 是用于执行协议的一些内部功能逻辑的数据传输。(关闭帧,Ping帧和Pong帧)
- 数据帧 定义了携带应用数据的WebSocket传输的种类
- 文本型 携带文本消息
- 二进制型 携带二进制数据
Java WebSocket API中的WebSocket生命周期
- 打开事件:此事件发生在端点上建立新连接时并且在任何其他事件发生之前
- 消息事件:此事件接收WebSocket对话中另一端发送的消息。它可以发生在WebSocket端点接收了打开事件之后且在接收关闭事件关闭连接之前的任意时刻
- 错误事件:此事件在WebSocket连接或者端点发生错误时产生
- 关闭事件:此事件表示WebSocket端点的连接或者端点目前正在部分的关闭,它可以由参与连接的任意一个端点发出