WebSocket 接口

连接地址

wss://<服务器IP>/ws?sessionId=<sessionId>

消息格式

所有消息均为 JSON 格式。

客户端接收的消息类型

1. 连接成功

{
  "type": "connected",
  "data": 10  // 当前 Session 的记录数量
}

2. 新记录到达

{
  "type": "entry-received",
  "data": {
    "id": "1234567890-abc123",
    "api": "/api/user/info",
    "response": "{\"code\": 0}",
    "timestamp": 1698764800000
  }
}

3. 记录更新

{
  "type": "entry-updated",
  "data": {
    "id": "1234567890-abc123",
    "api": "/api/user/info",
    "timeConsuming": 120
  }
}

4. 记录删除

{
  "type": "deleted",
  "data": "1234567890-abc123"  // 删除的记录 ID
}

5. 记录清空

{
  "type": "cleared"
}

心跳机制

客户端需定期发送心跳包保持连接:

{
  "type": "ping"
}

服务端响应:

{
  "type": "pong"
}

建议心跳间隔:30 秒。

消息类型汇总

消息类型方向说明
connected服务端 → 客户端连接成功,返回当前记录数
entry-received服务端 → 客户端新记录到达
entry-updated服务端 → 客户端记录更新(双阶段推送)
deleted服务端 → 客户端记录删除
cleared服务端 → 客户端记录清空
ping客户端 → 服务端心跳请求
pong服务端 → 客户端心跳响应

断线重连

当 WebSocket 断开时,建议:

  1. 等待 3 秒后自动重连
  2. 重连成功后调用 拉取离线消息 接口补拉断线期间的消息

相关文档