@openim/protocol
Version:
OpenIM protocol
475 lines (474 loc) • 13.5 kB
TypeScript
import { type Conversation } from "../conversation/conversation";
import { type GetMaxSeqReq, type GetMaxSeqResp, type GroupInfo, type MsgData, type PullMessageBySeqsReq, type PullMessageBySeqsResp, type PullMsgs, type RequestPagination, type UserInfo } from "../sdkws/sdkws";
export declare const protobufPackage = "openim.msg";
export interface MsgDataToMQ {
token: string;
msgData: MsgData | undefined;
}
export interface MsgDataToDB {
msgData: MsgData | undefined;
}
export interface PushMsgDataToMQ {
msgData: MsgData | undefined;
conversationID: string;
}
export interface MsgDataToMongoByMQ {
lastSeq: number;
conversationID: string;
msgData: MsgData[];
}
export interface GetMaxAndMinSeqReq {
UserID: string;
}
export interface GetMaxAndMinSeqResp {
MaxSeq: number;
MinSeq: number;
}
export interface SendMsgReq {
msgData: MsgData | undefined;
}
export interface SendMsgResp {
serverMsgID: string;
clientMsgID: string;
sendTime: number;
}
export interface SetSendMsgStatusReq {
status: number;
}
export interface SetSendMsgStatusResp {
}
export interface GetSendMsgStatusReq {
}
export interface GetSendMsgStatusResp {
status: number;
}
export interface MsgDataToModifyByMQ {
messages: MsgData[];
conversationID: string;
}
export interface DelMsgsReq {
}
export interface DelMsgsResp {
}
export interface RevokeMsgReq {
conversationID: string;
seq: number;
userID: string;
}
export interface RevokeMsgResp {
}
export interface MarkMsgsAsReadReq {
conversationID: string;
seqs: number[];
userID: string;
}
export interface MarkMsgsAsReadResp {
}
export interface MarkConversationAsReadReq {
conversationID: string;
userID: string;
hasReadSeq: number;
seqs: number[];
}
export interface MarkConversationAsReadResp {
}
export interface SetConversationHasReadSeqReq {
conversationID: string;
userID: string;
hasReadSeq: number;
noNotification: boolean;
}
export interface SetConversationHasReadSeqResp {
}
export interface DeleteSyncOpt {
IsSyncSelf: boolean;
IsSyncOther: boolean;
}
export interface ClearConversationsMsgReq {
conversationIDs: string[];
userID: string;
deleteSyncOpt: DeleteSyncOpt | undefined;
}
export interface ClearConversationsMsgResp {
}
export interface UserClearAllMsgReq {
userID: string;
deleteSyncOpt: DeleteSyncOpt | undefined;
}
export interface UserClearAllMsgResp {
}
export interface DeleteMsgsReq {
conversationID: string;
seqs: number[];
userID: string;
deleteSyncOpt: DeleteSyncOpt | undefined;
}
export interface DeleteMsgsResp {
}
export interface DeleteMsgPhysicalReq {
conversationIDs: string[];
timestamp: number;
}
export interface DeleteMsgPhysicalResp {
}
export interface DeleteMsgPhysicalBySeqReq {
conversationID: string;
seqs: number[];
}
export interface DeleteMsgPhysicalBySeqResp {
}
export interface GetMaxSeqsReq {
conversationIDs: string[];
}
export interface GetHasReadSeqsReq {
userID: string;
conversationIDs: string[];
}
export interface SeqsInfoResp {
maxSeqs: {
[key: string]: number;
};
}
export interface SeqsInfoResp_MaxSeqsEntry {
key: string;
value: number;
}
export interface GetMsgByConversationIDsReq {
conversationIDs: string[];
maxSeqs: {
[key: string]: number;
};
}
export interface GetMsgByConversationIDsReq_MaxSeqsEntry {
key: string;
value: number;
}
export interface GetMsgByConversationIDsResp {
msgDatas: {
[key: string]: MsgData;
};
}
export interface GetMsgByConversationIDsResp_MsgDatasEntry {
key: string;
value: MsgData | undefined;
}
export interface GetConversationMaxSeqReq {
conversationID: string;
}
export interface GetConversationMaxSeqResp {
maxSeq: number;
}
export interface GetConversationsHasReadAndMaxSeqReq {
userID: string;
conversationIDs: string[];
}
export interface Seqs {
maxSeq: number;
hasReadSeq: number;
maxSeqTime: number;
}
export interface GetConversationsHasReadAndMaxSeqResp {
seqs: {
[key: string]: Seqs;
};
}
export interface GetConversationsHasReadAndMaxSeqResp_SeqsEntry {
key: string;
value: Seqs | undefined;
}
export interface GetActiveUserReq {
start: number;
end: number;
ase: boolean;
group: boolean;
pagination: RequestPagination | undefined;
}
export interface ActiveUser {
user: UserInfo | undefined;
count: number;
}
export interface GetActiveUserResp {
msgCount: number;
userCount: number;
dateCount: {
[key: string]: number;
};
users: ActiveUser[];
}
export interface GetActiveUserResp_DateCountEntry {
key: string;
value: number;
}
export interface GetActiveGroupReq {
start: number;
end: number;
ase: boolean;
pagination: RequestPagination | undefined;
}
export interface ActiveGroup {
group: GroupInfo | undefined;
count: number;
}
export interface GetActiveGroupResp {
msgCount: number;
groupCount: number;
dateCount: {
[key: string]: number;
};
groups: ActiveGroup[];
}
export interface GetActiveGroupResp_DateCountEntry {
key: string;
value: number;
}
export interface SearchMessageReq {
/** 发送者ID */
sendID: string;
/** 接收者ID */
recvID: string;
contentType: number;
sendTime: string;
sessionType: number;
pagination: RequestPagination | undefined;
}
export interface SearchChatLog {
chatLog: ChatLog | undefined;
isRevoked: boolean;
}
export interface SearchedMsgData {
msgData: MsgData | undefined;
isRevoked: boolean;
}
export interface SearchMessageResp {
chatLogs: SearchChatLog[];
chatLogsNum: number;
}
export interface ChatLog {
serverMsgID: string;
clientMsgID: string;
sendID: string;
recvID: string;
groupID: string;
recvNickname: string;
senderPlatformID: number;
senderNickname: string;
senderFaceURL: string;
groupName: string;
sessionType: number;
msgFrom: number;
contentType: number;
content: string;
status: number;
sendTime: number;
createTime: number;
ex: string;
groupFaceURL: string;
groupMemberCount: number;
seq: number;
groupOwner: string;
groupType: number;
}
export interface batchSendMessageReq {
recvIDList: string[];
msgData: MsgData | undefined;
}
export interface batchSendMessageResp {
}
export interface GetServerTimeReq {
}
export interface GetServerTimeResp {
serverTime: number;
}
export interface ClearMsgReq {
timestamp: number;
}
export interface ClearMsgResp {
}
export interface MarkGroupMessageReadReq {
userID: string;
conversationID: string;
/** msgID:sendUserID */
clientMsgs: {
[key: string]: string;
};
}
export interface MarkGroupMessageReadReq_ClientMsgsEntry {
key: string;
value: string;
}
export interface MarkGroupMessageReadResp {
/** 0:已经标记过了 1:新标记 */
mark: {
[key: string]: number;
};
}
export interface MarkGroupMessageReadResp_MarkEntry {
key: string;
value: number;
}
export interface GetGroupMessageReadNumReq {
userID: string;
conversationID: string;
clientMsgIDs: string[];
}
export interface MessageReadInfo {
readNum: number;
unreadNum: number;
}
export interface GetGroupMessageReadNumResp {
num: {
[key: string]: MessageReadInfo;
};
}
export interface GetGroupMessageReadNumResp_NumEntry {
key: string;
value: MessageReadInfo | undefined;
}
export interface GetGroupMessageHasReadReq {
conversationID: string;
clientMsgID: string;
/** 0: 未读 1: 已读 */
type: number;
pagination: RequestPagination | undefined;
}
export interface GroupMessageUserReadTime {
userID: string;
readTime: number;
}
export interface GetGroupMessageHasReadResp {
count: number;
reads: GroupMessageUserReadTime[];
}
export interface DestructMsgsReq {
conversations: Conversation[];
}
export interface DestructMsgsResp {
}
export interface SetUserConversationsMinSeqReq {
userIDs: string[];
conversationID: string;
seq: number;
}
export interface SetUserConversationsMinSeqResp {
}
export interface ConversationSeqs {
conversationID: string;
seqs: number[];
}
export interface GetSeqMessageReq {
userID: string;
conversations: ConversationSeqs[];
}
export interface GetSeqMessageResp {
msgs: {
[key: string]: PullMsgs;
};
notificationMsgs: {
[key: string]: PullMsgs;
};
}
export interface GetSeqMessageResp_MsgsEntry {
key: string;
value: PullMsgs | undefined;
}
export interface GetSeqMessageResp_NotificationMsgsEntry {
key: string;
value: PullMsgs | undefined;
}
export interface GetActiveConversationReq {
conversationIDs: string[];
limit: number;
}
export interface ActiveConversation {
conversationID: string;
lastTime: number;
maxSeq: number;
}
export interface GetActiveConversationResp {
conversations: ActiveConversation[];
}
export interface MarkUserMessageReadReq {
conversationID: string;
userID: string;
seqs: number[];
}
export interface MarkUserMessageReadResp {
}
export interface MarkConversationReadReq {
conversationID: string;
userID: string;
seq: number;
}
export interface MarkConversationReadResp {
}
export interface AppendStreamMsgReq {
clientMsgID: string;
startIndex: number;
packets: string[];
end: boolean;
}
export interface AppendStreamMsgResp {
}
export interface GetStreamMsgReq {
clientMsgID: string;
}
export interface GetStreamMsgResp {
clientMsgID: string;
conversationID: string;
userID: string;
packets: string[];
end: boolean;
createTime: number;
deadlineTime: number;
}
export interface msg {
/** 获取最小最大seq(包括用户的,以及指定群组的) */
GetMaxSeq(request: GetMaxSeqReq): Promise<GetMaxSeqResp>;
/** 获取会话列表的最大seq */
GetMaxSeqs(request: GetMaxSeqsReq): Promise<SeqsInfoResp>;
/** 获取会话列表已读的最大seq */
GetHasReadSeqs(request: GetHasReadSeqsReq): Promise<SeqsInfoResp>;
/** 获取最新消息 */
GetMsgByConversationIDs(request: GetMsgByConversationIDsReq): Promise<GetMsgByConversationIDsResp>;
GetConversationMaxSeq(request: GetConversationMaxSeqReq): Promise<GetConversationMaxSeqResp>;
/** 拉取历史消息(包括用户的,以及指定群组的) */
PullMessageBySeqs(request: PullMessageBySeqsReq): Promise<PullMessageBySeqsResp>;
GetSeqMessage(request: GetSeqMessageReq): Promise<GetSeqMessageResp>;
SearchMessage(request: SearchMessageReq): Promise<SearchMessageResp>;
/** 发送消息 */
SendMsg(request: SendMsgReq): Promise<SendMsgResp>;
SetUserConversationsMinSeq(request: SetUserConversationsMinSeqReq): Promise<SetUserConversationsMinSeqResp>;
/** 全量清空指定会话消息 重置min seq 比最大seq大1 */
ClearConversationsMsg(request: ClearConversationsMsgReq): Promise<ClearConversationsMsgResp>;
/** 删除用户全部消息 重置min seq 比最大seq大1 */
UserClearAllMsg(request: UserClearAllMsgReq): Promise<UserClearAllMsgResp>;
/** 用户标记删除部分消息by Seq */
DeleteMsgs(request: DeleteMsgsReq): Promise<DeleteMsgsResp>;
/** seq物理删除消息 */
DeleteMsgPhysicalBySeq(request: DeleteMsgPhysicalBySeqReq): Promise<DeleteMsgPhysicalBySeqResp>;
/** 物理删除消息by 时间 */
DeleteMsgPhysical(request: DeleteMsgPhysicalReq): Promise<DeleteMsgPhysicalResp>;
/** 设置消息是否发送成功-针对api发送的消息 */
SetSendMsgStatus(request: SetSendMsgStatusReq): Promise<SetSendMsgStatusResp>;
/** 获取消息发送状态 */
GetSendMsgStatus(request: GetSendMsgStatusReq): Promise<GetSendMsgStatusResp>;
RevokeMsg(request: RevokeMsgReq): Promise<RevokeMsgResp>;
/** mark as read */
MarkMsgsAsRead(request: MarkMsgsAsReadReq): Promise<MarkMsgsAsReadResp>;
MarkConversationAsRead(request: MarkConversationAsReadReq): Promise<MarkConversationAsReadResp>;
SetConversationHasReadSeq(request: SetConversationHasReadSeqReq): Promise<SetConversationHasReadSeqResp>;
GetConversationsHasReadAndMaxSeq(request: GetConversationsHasReadAndMaxSeqReq): Promise<GetConversationsHasReadAndMaxSeqResp>;
GetActiveUser(request: GetActiveUserReq): Promise<GetActiveUserResp>;
GetActiveGroup(request: GetActiveGroupReq): Promise<GetActiveGroupResp>;
GetServerTime(request: GetServerTimeReq): Promise<GetServerTimeResp>;
ClearMsg(request: ClearMsgReq): Promise<ClearMsgResp>;
MarkGroupMessageRead(request: MarkGroupMessageReadReq): Promise<MarkGroupMessageReadResp>;
GetGroupMessageReadNum(request: GetGroupMessageReadNumReq): Promise<GetGroupMessageReadNumResp>;
GetGroupMessageHasRead(request: GetGroupMessageHasReadReq): Promise<GetGroupMessageHasReadResp>;
DestructMsgs(request: DestructMsgsReq): Promise<DestructMsgsResp>;
GetActiveConversation(request: GetActiveConversationReq): Promise<GetActiveConversationResp>;
MarkUserMessageRead(request: MarkUserMessageReadReq): Promise<MarkUserMessageReadResp>;
MarkConversationRead(request: MarkConversationReadReq): Promise<MarkConversationReadResp>;
AppendStreamMsg(request: AppendStreamMsgReq): Promise<AppendStreamMsgResp>;
GetStreamMsg(request: GetStreamMsgReq): Promise<GetStreamMsgResp>;
}