Files
open-im-server/pkg/proto/msg/msg.proto
T

284 lines
6.7 KiB
Protocol Buffer
Raw Normal View History

2021-05-26 19:19:41 +08:00
syntax = "proto3";
2023-03-17 17:26:58 +08:00
package OpenIMServer.msg;
2023-03-16 10:46:06 +08:00
import "sdkws/sdkws.proto";
import "wrapperspb/wrapperspb.proto";
option go_package = "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/msg";
2022-03-16 10:44:58 +08:00
2021-12-22 10:47:07 +08:00
message MsgDataToMQ{
2023-03-02 12:00:31 +08:00
string token = 1;
sdkws.MsgData msgData = 2;
2021-05-26 19:19:41 +08:00
}
2021-06-28 15:33:26 +08:00
2021-12-22 10:47:07 +08:00
message MsgDataToDB {
2023-02-09 20:36:34 +08:00
sdkws.MsgData msgData = 1;
2021-05-26 19:19:41 +08:00
}
2023-03-02 12:00:31 +08:00
2021-12-22 10:47:07 +08:00
message PushMsgDataToMQ{
2023-03-02 12:00:31 +08:00
sdkws.MsgData msgData = 1;
2023-05-04 15:06:23 +08:00
string conversationID = 2;
2021-12-22 10:47:07 +08:00
}
2023-03-02 12:00:31 +08:00
2022-06-16 12:04:57 +08:00
message MsgDataToMongoByMQ{
2023-04-28 18:39:21 +08:00
int64 lastSeq = 1;
2023-05-04 16:00:06 +08:00
string conversationID = 2;
2023-04-28 18:39:21 +08:00
repeated sdkws.MsgData msgData = 3;
2022-06-16 12:04:57 +08:00
}
2021-05-26 19:19:41 +08:00
message GetMaxAndMinSeqReq {
string UserID = 1;
}
message GetMaxAndMinSeqResp {
2023-03-02 12:00:31 +08:00
int64 MaxSeq = 1;
int64 MinSeq = 2;
2021-05-26 19:19:41 +08:00
}
2021-12-21 21:40:50 +08:00
message SendMsgReq {
2023-02-10 21:04:22 +08:00
sdkws.MsgData msgData = 3;
2021-05-26 19:19:41 +08:00
}
2021-12-21 21:40:50 +08:00
message SendMsgResp {
2023-03-02 12:00:31 +08:00
string serverMsgID = 1;
string clientMsgID = 2;
int64 sendTime = 3;
2022-05-31 19:16:29 +08:00
}
2021-05-26 19:19:41 +08:00
2022-07-20 20:59:52 +08:00
2022-09-06 15:51:18 +08:00
message SetSendMsgStatusReq{
2023-03-02 12:00:31 +08:00
int32 status = 1;
2022-07-26 15:16:46 +08:00
}
2022-09-06 15:51:18 +08:00
message SetSendMsgStatusResp{
2022-07-26 15:16:46 +08:00
}
message GetSendMsgStatusReq{
}
message GetSendMsgStatusResp{
2023-03-02 12:00:31 +08:00
int32 status = 1;
2022-07-26 15:16:46 +08:00
}
2023-03-02 12:00:31 +08:00
2022-09-21 18:44:21 +08:00
2022-12-08 19:50:28 +08:00
message ModifyMessageReactionExtensionsReq {
2023-05-04 15:06:23 +08:00
string conversationID = 1;
2023-03-02 12:00:31 +08:00
int32 sessionType = 2;
map <string, sdkws.KeyValue>reactionExtensions = 3;
string clientMsgID = 4;
2023-03-09 14:41:57 +08:00
OpenIMServer.protobuf.StringValue ex = 5;
OpenIMServer.protobuf.StringValue attachedInfo = 6;
2023-03-02 12:00:31 +08:00
bool isReact = 7;
bool isExternalExtensions = 8;
int64 msgFirstModifyTime = 9;
2022-12-08 19:50:28 +08:00
}
2022-12-12 15:34:49 +08:00
message SetMessageReactionExtensionsReq {
2023-05-04 15:06:23 +08:00
string conversationID = 1;
2023-03-02 12:00:31 +08:00
int32 sessionType = 2;
map <string, sdkws.KeyValue>reactionExtensions = 3;
string clientMsgID = 4;
2023-03-09 14:41:57 +08:00
OpenIMServer.protobuf.StringValue ex = 5;
OpenIMServer.protobuf.StringValue attachedInfo = 6;
2023-03-02 12:00:31 +08:00
bool isReact = 7;
bool isExternalExtensions = 8;
int64 msgFirstModifyTime = 9;
2022-12-12 15:34:49 +08:00
}
message SetMessageReactionExtensionsResp {
2023-03-02 12:00:31 +08:00
string clientMsgID = 1;
int64 msgFirstModifyTime = 2;
bool isReact = 3;
repeated KeyValueResp result = 4;
2022-12-12 15:34:49 +08:00
}
2022-12-08 19:50:28 +08:00
2023-03-02 12:00:31 +08:00
message GetMessagesReactionExtensionsReq {
2023-05-04 15:06:23 +08:00
string conversationID = 1;
2023-03-02 12:00:31 +08:00
int32 sessionType = 2;
2022-12-12 19:15:31 +08:00
message MessageReactionKey {
string clientMsgID = 1;
int64 msgFirstModifyTime = 2;
}
2023-03-02 12:00:31 +08:00
repeated MessageReactionKey messageReactionKeys = 3;
repeated string TypeKeys = 4;
2022-12-12 19:15:31 +08:00
}
2023-03-02 12:00:31 +08:00
message GetMessagesReactionExtensionsResp{
repeated SingleMessageExtensionResult singleMessageResult = 1;
2022-12-12 19:15:31 +08:00
}
message SingleMessageExtensionResult {
2023-04-28 18:39:21 +08:00
map <string, sdkws.KeyValue>reactionExtensions = 1;
2023-03-02 12:00:31 +08:00
string clientMsgID = 2;
2022-12-12 19:15:31 +08:00
}
2022-12-08 19:50:28 +08:00
message ModifyMessageReactionExtensionsResp {
2023-03-02 12:00:31 +08:00
repeated ExtendMsgResp successList = 1;
repeated ExtendMsgResp failedList = 2;
2022-12-08 19:50:28 +08:00
}
2023-03-02 12:00:31 +08:00
message DeleteMessagesReactionExtensionsReq {
2022-12-08 19:50:28 +08:00
string operationID = 1;
string opUserID = 2;
2023-05-04 15:06:23 +08:00
string conversationID = 3;
2022-12-09 16:42:43 +08:00
int32 sessionType = 4;
string clientMsgID = 5;
2022-12-23 16:05:51 +08:00
bool isExternalExtensions = 6;
int64 msgFirstModifyTime = 7;
2023-03-02 12:00:31 +08:00
repeated sdkws.KeyValue reactionExtensions = 8;
2022-12-07 21:12:48 +08:00
}
2023-03-02 12:00:31 +08:00
message DeleteMessagesReactionExtensionsResp {
repeated KeyValueResp result = 1;
2022-12-09 16:42:43 +08:00
}
message ExtendMsgResp {
2022-12-09 17:29:18 +08:00
ExtendMsg extendMsg = 1;
}
message ExtendMsg {
2023-03-02 12:00:31 +08:00
map <string, KeyValueResp>reactionExtensions = 1;
2022-12-09 17:29:18 +08:00
string clientMsgID = 2;
int64 msgFirstModifyTime = 3;
string attachedInfo = 4;
string ex = 5;
}
message KeyValueResp {
2023-02-09 20:36:34 +08:00
sdkws.KeyValue keyValue = 1;
2023-03-03 17:42:26 +08:00
int32 errCode = 2;
string errMsg = 3;
2022-12-07 21:12:48 +08:00
}
2022-09-21 18:44:21 +08:00
2022-12-12 19:22:50 +08:00
message MsgDataToModifyByMQ{
2023-04-28 18:39:21 +08:00
repeated sdkws.MsgData messages = 1;
2023-05-19 19:43:43 +08:00
string conversationID = 2;
2022-12-12 19:22:50 +08:00
}
2023-03-02 12:00:31 +08:00
message DelMsgsReq{
2023-02-16 15:20:59 +08:00
}
2023-03-02 12:00:31 +08:00
message DelMsgsResp{
2023-02-16 15:20:59 +08:00
}
2022-12-12 19:22:50 +08:00
2023-05-22 15:15:01 +08:00
message RevokeMsgReq {
2023-05-26 18:33:32 +08:00
string conversationID = 1;
int64 seq = 2;
string userID = 3;
2023-05-22 15:15:01 +08:00
}
message RevokeMsgResp {
}
2023-06-02 16:38:15 +08:00
message MarkMsgsAsReadReq {
string conversationID = 1;
repeated int64 seqs = 2;
string userID = 3;
}
message MarkMsgsAsReadResp {
}
2023-05-29 16:26:24 +08:00
message DeleteSyncOpt {
bool IsSyncSelf = 3;
bool IsSyncOther = 4;
}
2023-05-25 10:57:46 +08:00
message ClearConversationsMsgReq {
repeated string conversationIDs = 1;
string userID = 2;
2023-05-29 19:11:32 +08:00
DeleteSyncOpt deleteSyncOpt = 3;
2023-05-25 10:57:46 +08:00
}
message ClearConversationsMsgResp {
}
2023-05-25 11:09:10 +08:00
message UserClearAllMsgReq {
2023-05-25 10:57:46 +08:00
string userID = 1;
2023-05-29 19:11:32 +08:00
DeleteSyncOpt deleteSyncOpt = 3;
2023-05-25 10:57:46 +08:00
}
2023-05-25 11:09:10 +08:00
message UserClearAllMsgResp {
2023-05-25 10:57:46 +08:00
}
2023-05-25 11:04:41 +08:00
message DeleteMsgsReq {
2023-05-25 10:57:46 +08:00
string conversationID = 1;
repeated int64 seqs = 2;
string userID = 3;
2023-05-29 19:11:32 +08:00
DeleteSyncOpt deleteSyncOpt = 4;
2023-05-25 10:57:46 +08:00
}
2023-05-25 11:04:41 +08:00
message DeleteMsgsResp {
2023-05-25 10:57:46 +08:00
}
message DeleteMsgPhysicalReq {
repeated string conversationIDs = 1;
2023-06-07 16:52:25 +08:00
int64 timestamp = 2;
2023-05-25 10:57:46 +08:00
}
message DeleteMsgPhysicalResp {
}
2023-05-25 11:04:41 +08:00
message DeleteMsgPhysicalBySeqReq {
2023-05-25 10:57:46 +08:00
string conversationID = 1;
repeated int64 seqs = 2;
}
2023-05-25 11:04:41 +08:00
message DeleteMsgPhysicalBySeqResp {
2023-05-31 11:48:33 +08:00
}
message GetConversationMaxSeqReq {
string conversationID = 1;
}
message GetConversationMaxSeqResp {
int64 maxSeq = 1;
2023-05-25 10:57:46 +08:00
}
2023-06-06 18:46:06 +08:00
message GetConversationsHasReadAndMaxSeqReq {
string userID = 1;
}
message Seqs {
int64 maxSeq = 1;
int64 hasReadSeq = 2;
}
message GetConversationsHasReadAndMaxSeqResp {
map<string, Seqs> seqs = 1;
}
2022-07-20 20:59:52 +08:00
service msg {
2023-02-10 21:04:22 +08:00
//获取最小最大seq(包括用户的,以及指定群组的)
2023-05-05 12:19:04 +08:00
rpc GetMaxSeq(sdkws.GetMaxSeqReq) returns(sdkws.GetMaxSeqResp);
2023-05-31 11:48:33 +08:00
rpc GetConversationMaxSeq(GetConversationMaxSeqReq) returns(GetConversationMaxSeqResp);
2023-02-10 21:04:22 +08:00
//拉取历史消息(包括用户的,以及指定群组的)
2023-03-02 12:00:31 +08:00
rpc PullMessageBySeqs(sdkws.PullMessageBySeqsReq) returns(sdkws.PullMessageBySeqsResp);
2023-02-10 21:04:22 +08:00
//发送消息
2021-12-21 21:40:50 +08:00
rpc SendMsg(SendMsgReq) returns(SendMsgResp);
2023-05-25 10:57:46 +08:00
// 全量清空指定会话消息 重置min seq 比最大seq大1
rpc ClearConversationsMsg(ClearConversationsMsgReq) returns(ClearConversationsMsgResp);
// 删除用户全部消息 重置min seq 比最大seq大1
2023-05-25 11:09:10 +08:00
rpc UserClearAllMsg(UserClearAllMsgReq) returns(UserClearAllMsgResp);
2023-05-25 10:57:46 +08:00
// 用户标记删除部分消息by Seq
2023-05-25 11:04:41 +08:00
rpc DeleteMsgs(DeleteMsgsReq) returns(DeleteMsgsResp);
2023-05-25 10:57:46 +08:00
// seq物理删除消息
2023-05-25 11:04:41 +08:00
rpc DeleteMsgPhysicalBySeq(DeleteMsgPhysicalBySeqReq) returns(DeleteMsgPhysicalBySeqResp);
2023-05-25 12:18:02 +08:00
// 物理删除消息by 时间
rpc DeleteMsgPhysical(DeleteMsgPhysicalReq) returns(DeleteMsgPhysicalResp);
2023-05-25 10:57:46 +08:00
2023-02-10 21:04:22 +08:00
//设置消息是否发送成功-针对api发送的消息
2022-09-06 15:51:18 +08:00
rpc SetSendMsgStatus(SetSendMsgStatusReq) returns(SetSendMsgStatusResp);
2023-02-10 21:04:22 +08:00
//获取消息发送状态
2022-07-26 15:16:46 +08:00
rpc GetSendMsgStatus(GetSendMsgStatusReq) returns(GetSendMsgStatusResp);
2023-05-22 15:15:01 +08:00
rpc RevokeMsg(RevokeMsgReq) returns(RevokeMsgResp);
2023-06-02 16:38:15 +08:00
rpc MarkMsgsAsRead(MarkMsgsAsReadReq) returns(MarkMsgsAsReadResp);
2023-02-10 21:04:22 +08:00
// 修改消息
2022-12-12 15:34:49 +08:00
rpc SetMessageReactionExtensions(SetMessageReactionExtensionsReq) returns(SetMessageReactionExtensionsResp);
2023-03-02 12:00:31 +08:00
rpc GetMessagesReactionExtensions(GetMessagesReactionExtensionsReq) returns(GetMessagesReactionExtensionsResp);
2022-12-08 19:50:28 +08:00
rpc AddMessageReactionExtensions(ModifyMessageReactionExtensionsReq) returns(ModifyMessageReactionExtensionsResp);
2023-03-02 12:00:31 +08:00
rpc DeleteMessageReactionExtensions(DeleteMessagesReactionExtensionsReq) returns(DeleteMessagesReactionExtensionsResp);
2023-06-06 18:46:06 +08:00
rpc GetConversationsHasReadAndMaxSeq(GetConversationsHasReadAndMaxSeqReq) returns(GetConversationsHasReadAndMaxSeqResp);
2021-05-26 19:19:41 +08:00
}