Websocket详解

更新中—

websocket是基于tcp的全双工通信协议。允许服务器主动向客户端推送数据。
只需要一次握手就可以建立持久的连接。
websocket生命周期

消息格式

文本或二进制

一个消息由消息头和消息体

消息头
消息头包括:

  1. FIN:1 or 0 表示是 or 不是 一条完整的消息
  2. Opcode:表示消息类型
  3. Payload length: 表示消息体长度
    1. Mask: 表示是否加密
  4. Masking key:仅在需要加密时出现,用于对消息进行解密

流程:

  1. 服务器建立ws服务器
  2. 监听
    1. 连接开放ws.onopen
    2. 连接关闭ws.onerror
    3. 接收消息ws.onmessage

心跳机制

Ping消息由客户端发送给服务端;Pong消息由服务端发送给客户端,作为响应

如果客户端在一段时间内没有接收到Pong消息,就会关闭连接。