mirror of
https://gitee.com/Zhaoxin59/my-chat_-client.git
synced 2026-02-13 16:41:48 +08:00
80 lines
2.8 KiB
Protocol Buffer
80 lines
2.8 KiB
Protocol Buffer
syntax = "proto3";
|
||
package bite_im;
|
||
|
||
option cc_generic_services = true;
|
||
|
||
//用户信息结构
|
||
message UserInfo {
|
||
string user_id = 1;//用户ID
|
||
string nickname = 2;//昵称
|
||
string description = 3;//个人签名/描述
|
||
string phone = 4; //绑定手机号
|
||
bytes avatar = 5;//头像照片,文件内容使用二进制
|
||
}
|
||
|
||
//聊天会话信息
|
||
message ChatSessionInfo {
|
||
optional string single_chat_friend_id = 1;//群聊会话不需要设置,单聊会话设置为对方ID
|
||
string chat_session_id = 2; //会话ID
|
||
string chat_session_name = 3;//会话名称git
|
||
optional MessageInfo prev_message = 4;//会话上一条消息,新建的会话没有最新消息
|
||
optional bytes avatar = 5;//会话头像 --群聊会话不需要,直接由前端固定渲染,单聊就是对方的头像
|
||
}
|
||
|
||
//消息类型
|
||
enum MessageType {
|
||
STRING = 0;
|
||
IMAGE = 1;
|
||
FILE = 2;
|
||
SPEECH = 3;
|
||
}
|
||
message StringMessageInfo {
|
||
string content = 1;//文字聊天内容
|
||
}
|
||
message ImageMessageInfo {
|
||
optional string file_id = 1;//图片文件id,客户端发送的时候不用设置,由transmit服务器进行设置后交给storage的时候设置
|
||
optional bytes image_content = 2;//图片数据,在ES中存储消息的时候只要id不要文件数据, 服务端转发的时候需要原样转发
|
||
}
|
||
message FileMessageInfo {
|
||
optional string file_id = 1;//文件id,客户端发送的时候不用设置
|
||
int64 file_size = 2;//文件大小
|
||
string file_name = 3;//文件名称
|
||
optional bytes file_contents = 4;//文件数据,在ES中存储消息的时候只要id和元信息,不要文件数据, 服务端转发的时候也不需要填充
|
||
}
|
||
message SpeechMessageInfo {
|
||
optional string file_id = 1;//语音文件id,客户端发送的时候不用设置
|
||
optional bytes file_contents = 2;//文件数据,在ES中存储消息的时候只要id不要文件数据, 服务端转发的时候也不需要填充
|
||
}
|
||
message MessageContent {
|
||
MessageType message_type = 1; //消息类型
|
||
oneof msg_content {
|
||
StringMessageInfo string_message = 2;//文字消息
|
||
FileMessageInfo file_message = 3;//文件消息
|
||
SpeechMessageInfo speech_message = 4;//语音消息
|
||
ImageMessageInfo image_message = 5;//图片消息
|
||
};
|
||
}
|
||
//消息结构
|
||
message MessageInfo {
|
||
string message_id = 1;//消息ID
|
||
string chat_session_id = 2;//消息所属聊天会话ID
|
||
int64 timestamp = 3;//消息产生时间
|
||
UserInfo sender = 4;//消息发送者信息
|
||
MessageContent message = 5;
|
||
}
|
||
|
||
message Message {
|
||
string request_id = 1;
|
||
MessageInfo message = 2;
|
||
}
|
||
|
||
message FileDownloadData {
|
||
string file_id = 1;
|
||
bytes file_content = 2;
|
||
}
|
||
|
||
message FileUploadData {
|
||
string file_name = 1;
|
||
int64 file_size = 2;
|
||
bytes file_content = 3;
|
||
} |