1.7 KiB
1.7 KiB
comet 客户端通讯协议
comet 支持两种协议和客户端通讯 websocket,tcp。
请求URL
ws://DOMAIN/sub/
tcp://DOMAIN
协议格式
二进制,请求和返回协议一致
请求&返回参数
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| package length | true | int32 bigendian | 包长度 |
| header Length | true | int16 bigendian | 包头长度 |
| ver | true | int16 bigendian | 协议版本 |
| operation | true | int32 bigendian | 协议指令 |
| seq | true | int32 bigendian | 序列号 |
| ack | true | int32 bigendian | 确认号 |
| body | false | binary | $(package lenth) - $(header length) |
指令
| 指令 | 说明 |
|---|---|
| 1 | 客户端连接认证 |
| 2 | 客户端连接认证响应 |
| 3 | 客户端请求心跳 |
| 4 | 服务端心跳答复 |
| 5 | 客户端断开连接 |
| 6 | 客户端断开连接响应 |
| 7 | 客户端发送消息 |
| 8 | 客户端发送消息响应 |
| 9 | 客户端接收消息 |
| 10 | 客户端接收消息响应 |
| 14 | 多端同步指令(未使用) |
| 15 | 多端同步指令响应(未使用) |
连接认证
operation 为 1 时, body 必须可以反序列化为 AuthMsg
message AuthMsg {
string appId = 1;
string token = 2;
bytes ext = 3; // 其它业务方可能需要的信息
}
operation 为 15 时, body 必须可以反序列化为 SyncMsg
message SyncMsg {
int64 logId = 1;
}
具体协议参考 api/comet/grpc/comet.proto 和 api/logic/grpc/comet.proto