4.7 KiB
4.7 KiB
应用方消息子协议
协议格式:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| eventType | true | int32 | 事件类型 |
| body | true | byte[] | 消息体 |
事件类型
| 类型 | 说明 |
|---|---|
| 0 | 普通消息 |
| 1 | 消息回复 |
| 2 | 通知信令 |
普通消息
body描述(encode:proto序列化)
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelType | true | int32 | 消息通道 |
| logId | true | int64 | 消息id |
| msgId | true | string | 客户端序列 |
| from | true | string | 发送者 |
| target | true | string | 接收者 |
| msgType | true | int32 | 消息类型 |
| msg | true | binary | 消息体 |
| datetime | true | uint64 | 事件戳,ms |
| source | true | Source | 来源,详见如下 |
Source结构:
message Source {
int32 channelType=1;
SourceUser from=2;
SourceUser target=3;
}
message SourceUser {
string id=1;
string name=2;
}
消息通道
| 类型 | 说明 |
|---|---|
| 0 | 单聊 |
| 1 | 群聊 |
消息类型
| 类型 | 说明 |
|---|---|
| 0 | 系统消息 |
| 1 | 文本消息 |
| 2 | 音频消息 |
| 3 | 图片消息 |
| 4 | 视频消息 |
| 5 | 文件消息 |
| 6 | 卡片消息 |
| 7 | 通知消息 |
| 8 | 合并转发 |
注意:msg 必须可以反序列化为msgType相对应的结构体
具体协议参考 pkg/proto/api.proto
message TextMsg {
string content = 1;
repeated string mentions = 2;
}
message AudioMsg {
string mediaUrl = 1;
int32 time = 2;
}
message ImageMsg {
string mediaUrl = 1;
int32 height = 2;
int32 width = 3;
}
message VideoMsg {
string mediaUrl = 1;
int32 time = 2;
int32 height = 3;
int32 width = 4;
}
message FileMsg {
string mediaUrl = 1;
string name = 2;
string md5 = 3;
int64 size = 4;
}
message CardMsg {
string bank = 1;
string name = 2;
string account = 3;
}
message NoticeMsg {
AlertType type = 1;
bytes body = 2;
}
message ForwardMsg {
repeated ForwardItem items = 1;
}
message ForwardItem {
string avatar=1;
string name=2;
int32 msgType=3;
bytes msg=4;
uint64 datetime=5;
}
通知消息
通知类型
| 类型 | 说明 |
|---|---|
| 0 | 修改群名 |
| 1 | 加群 |
| 2 | 退群 |
| 3 | 踢群 |
| 4 | 删群 |
| 5 | 群禁言模式更改 |
| 6 | 更改禁言名单 |
注意:body必须可以反序列化为AlertType相对应的结构体
具体协议参考 pkg/proto/api.proto
message AlertUpdateGroupName {
int64 group = 1;
string operator = 2;
string name = 3;
}
message AlertSignInGroup {
int64 group = 1;
string inviter = 2;
repeated string members = 3;
}
message AlertSignOutGroup {
int64 group = 1;
string operator = 2;
}
message AlertKickOutGroup {
int64 group = 1;
string operator = 2;
repeated string members = 3;
}
message AlertDeleteGroup {
int64 group = 1;
string operator = 2;
}
message AlertUpdateGroupMuted {
int64 group = 1;
string operator = 2;
MuteType type = 3;
}
message AlertUpdateGroupMemberMutedTime {
int64 group = 1;
string operator = 2;
repeated string members = 3;
}
Receive_Reply协议格式
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| eventType | true | int32 | 事件类型 |
| body | true | byte[] | 消息体 |
当eventType为0时,body必须可以被反序列化为CommonMsgAck
message CommonMsgAck {
int64 logId = 2;
uint64 datetime = 8;
}
通知信令
body描述(encode:proto序列化)
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| action | true | ActionType | 信令类型 |
| body | true | binary | 消息体 |
//alert msg define
message NotifyMsg {
ActionType action = 1;
bytes body = 2;
}
信令类型
| 类型 | 说明 |
|---|---|
| 0 | 送达 |
| 1 | 加群 |
| 2 | 退群 |
| 3 | 删群 |
| 20 | 更新加群权限 |
| 21 | 更新群加好友权限 |
| 22 | 更新群禁言类型 |
| 23 | 更新群成员 |
| 24 | 更新禁言列表 |
| 25 | 更新群名 |
| 26 | 更新群头像 |
注意:body必须可反序列化为ActionType对应的结构体。
具体参考 pkg/proto/api.proto
message ActionReceived {
repeated uint64 logs = 1;
}
message ActionSignInGroup {
repeated string uid = 1;
int64 group = 2;
uint64 time = 3;
}
message ActionSignOutGroup {
repeated string uid = 1;
int64 group = 2;
uint64 time = 3;
}
message ActionDeleteGroup {
int64 group = 1;
uint64 time = 2;
}