单机/分布式客户端数据推送解决方案
- 支持按客户端、按用户、按频道等多种批量发送模式
- 提供WebSocket、HTTP、GRPC对等接口
- 客户端推送频率可控
发送的数据:
[req1, req2, req3, ...]
接收的数据:[rsp1, rsp2, rsp3, ...]
- JSON Over WebSocket
- 必定为数组,数组的每个元素都是一个独立的请求/回应
- 同一个请求与回应中的seq相同
- login 登陆
- enter 进入频道
- exit 退出频道
- snd2cli 发送至客户端
- snd2usr 发送至用户
- snd2chan 发送至频道
- rcvdata 收到数据(仅客户端接收)
可根据具体需求进行灵活修订
{
"cmd": "login", // 命令
"seq": 1, // 通信串号
"immed": true, // 是否要求立即返回
"data": {/*...*/} // 命令相关数据部分
}
{
"cmd": "login", // 命令
"seq": 1, // 通信串号
"code": 0, // 返回码
"msg": "", // 返回信息
"data": {/*...*/} // 命令相关数据部分
}
/* 发送数据 */
{
"uid": 1001 // 用户标识
}
/* 接收数据 */
{
"id": 1 // 客户端标识
}
/* 发送数据 */
{
"chans": ["chan1", "chan2"] // 进入的频道列表
}
/* 接收数据 */
{
}
/* 发送数据 */
{
"chans": ["chan1", "chan2"] // 离开频道列表
}
/* 接收数据 */
{
}
/* 发送数据 */
{
"ids": [1, 2, 5, 111], // 客户端标识列表
"data": {/*...*/} // 数据体
}
/* 接收数据 */
{
}
/* 发送数据 */
{
"uids": [1001, 1002], // 用户标识列表
"data": {/*...*/} // 数据体
}
/* 接收数据 */
{
}
/* 发送数据 */
{
"chans": ["world", "world/room1", "buy"], // 频道标识列表
"data": {/*...*/} // 数据体
}
/* 接收数据 */
{
}
/* 发送数据 */
{
}
/* 接收数据 */
{
"id": 3, // 来源客户端标识
"uid": 1001, // 来源用户标识
"chan": "world", // 频道标识
"data": {/*...*/} // 数据体
}
待补充
待补充