syntax = "proto3"; package pb; option go_package = "gim/pkg/pb/"; service ConnectInt { // 消息投递 rpc DeliverMessage (DeliverMessageReq) returns (Empty); } message Empty{} enum SenderType { ST_UNKNOWN = 0; // 未知的 ST_SYSTEM = 1; // IM系统 ST_USER = 2; // 用户 ST_BUSINESS = 3; // 业务方 } message Sender { SenderType sender_type = 1; // 发送者类型,1:系统,2:用户,3:第三方业务系统 int64 sender_id = 2; // 发送者id int64 device_id = 3; // 发送者设备id string avatar_url = 4; // 昵称 string nickname = 5; // 头像 string extra = 6; // 扩展字段 } enum ReceiverType { RT_UNKNOWN = 0; // 未知 RT_USER = 1; // 用户 RT_GROUP = 2; // 群组 RT_ROOM = 3; // 房间 } // 单条消息投递内容(估算大约100个字节),todo 通知栏提醒 message Message { Sender sender = 1; // 发送者 ReceiverType receiver_type = 2; // 接收者类型,1:user;2:group int64 receiver_id = 3; // 用户id或者群组id repeated int64 to_user_ids = 4; // 需要@的用户id列表 MessageType message_type = 5; // 消息类型 bytes message_content = 6; // 消息内容 int64 seq = 7; // 用户消息发送序列号 int64 send_time = 8; // 消息发送时间戳,精确到毫秒 MessageStatus status = 9; // 消息状态 } enum MessageStatus { MS_UNKNOWN = 0; // 未知的 MS_NORMAL = 1; // 正常的 MS_RECALL = 2; // 撤回 } // 消息类型 enum MessageType { MT_UNKNOWN = 0; // 未知 MT_TEXT = 1; // 文本 MT_FACE = 2; // 表情 MT_VOICE = 3; // 语音消息 MT_IMAGE = 4; // 图片 MT_FILE = 5; // 文件 MT_LOCATION = 6; // 地理位置 MT_COMMAND = 7; // 指令推送 MT_CUSTOM = 8; // 自定义 } // 消息投递,package_type:4 message MessageSend { Message message = 1; // 消息 } message DeliverMessageReq { int64 device_id = 1; // 设备id MessageSend message_send = 2; // 数据 } // 房间推送 message PushRoomMsg{ int64 room_id = 1; // 设备id MessageSend message_send = 2; // 数据 } // 房间推送 message PushAllMsg{ MessageSend message_send = 2; // 数据 }