first commit

This commit is contained in:
2022-03-17 15:59:24 +08:00
commit 2b0debb847
592 changed files with 73946 additions and 0 deletions

248
doc/proto.md Normal file
View File

@@ -0,0 +1,248 @@
# 应用方消息子协议
**协议格式:**
| 参数名 | 必选 | 类型 | 说明 |
| :----- | :--- | :--- | :--- |
|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;
}
```