You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

321 regels
9.1 KiB

  1. syntax = "proto3";
  2. package pb;
  3. option go_package = "egg-im/pkg/pb/";
  4. import "business.ext.proto";
  5. import "common.ext.proto";
  6. import "connect.ext.proto";
  7. service LogicExt {
  8. // 注册设备
  9. rpc RegisterDevice (RegisterDeviceReq) returns (RegisterDeviceResp);
  10. // 发送消息
  11. rpc SendMessage (SendMessageReq) returns (SendMessageResp);
  12. // 撤回消息
  13. rpc RecallMessage (RecallMessageReq) returns (RecallMessageResp);
  14. // 推送消息到房间
  15. rpc PushRoom(PushRoomReq)returns(Empty);
  16. // 发送红包
  17. rpc SendRedPacket (SendRedPacketReq) returns (SendRedPacketResp);
  18. // 添加好友
  19. rpc AddFriend (AddFriendReq) returns (Empty);
  20. // 同意添加好友
  21. rpc AgreeAddFriend (AgreeAddFriendReq) returns (Empty);
  22. // 删除好友
  23. rpc DeleteFriend (DeleteFriendReq) returns (Empty);
  24. // 设置好友信息
  25. rpc SetFriend (SetFriendReq) returns (SetFriendResp);
  26. // 获取好友列表
  27. rpc GetFriends (Empty) returns (GetFriendsResp);
  28. // 创建群组
  29. rpc CreateGroup (CreateGroupReq) returns (CreateGroupResp);
  30. // 更新群组
  31. rpc UpdateGroup (UpdateGroupReq) returns (Empty);
  32. // 获取群组信息
  33. rpc GetGroup (GetGroupReq) returns (GetGroupResp);
  34. // 获取用户加入的所有群组
  35. rpc GetGroups (Empty) returns (GetGroupsResp);
  36. // 添加群组成员
  37. rpc AddGroupMembers (AddGroupMembersReq) returns (AddGroupMembersResp);
  38. // 扫码入群
  39. rpc ScanQrCodeAddGroup (ScanQrCodeAddGroupReq) returns (ScanQrCodeAddGroupResp);
  40. // 更新群组成员信息
  41. rpc UpdateGroupMember (UpdateGroupMemberReq) returns (Empty);
  42. // 删除群组成员
  43. rpc DeleteGroupMember (DeleteGroupMemberReq) returns (Empty);
  44. // 获取群组成员
  45. rpc GetGroupMembers (GetGroupMembersReq) returns (GetGroupMembersResp);
  46. // 设置禁言
  47. rpc SetGroupBannedMembers (SetGroupMemberBannedReq) returns (SetGroupMemberBannedResp);
  48. // 取消禁言
  49. rpc SetGroupRemoveBannedMembers (SetGroupMemberRemoveBannedReq) returns (Empty);
  50. // 获取群组禁言成员
  51. rpc GetGroupBannedMembers (GetGroupBannedMembersReq) returns (GetGroupBannedMembersResp);
  52. // 设置是否加好友
  53. rpc SetGroupAddFriend (SetGroupAddFriendReq) returns (Empty);
  54. }
  55. message RegisterDeviceReq {
  56. int32 type = 2; // 设备类型
  57. string brand = 3; // 厂商
  58. string model = 4; // 机型
  59. string system_version = 5; // 系统版本
  60. string sdk_version = 6; // sdk版本号
  61. }
  62. message RegisterDeviceResp {
  63. int64 device_id = 1; // 设备id
  64. }
  65. message SendMessageReq {
  66. ReceiverType receiver_type = 1; // 接收者类型,1:user;2:group
  67. int64 receiver_id = 2; // 用户id或者群组id
  68. repeated int64 to_user_ids = 3; // 需要@的用户id列表
  69. MessageType message_type = 4; // 消息类型
  70. bytes message_content = 5; // 消息内容
  71. int64 send_time = 6; // 消息发送时间戳,精确到毫秒
  72. bool is_persist = 7; // 是否将消息持久化到数据库
  73. string message_content_back = 8;
  74. }
  75. message SendMessageResp {
  76. int64 seq = 1; // 消息序列号
  77. }
  78. message RecallMessageReq {
  79. ReceiverType receiver_type = 1; // 接收者类型,1:user;2:group
  80. int64 receiver_id = 2; // 用户id或者群组id
  81. repeated int64 to_user_ids = 3; // 需要@的用户id列表
  82. MessageType message_type = 4; // 消息类型
  83. bytes message_content = 5; // 消息内容
  84. int64 send_time = 6; // 消息发送时间戳,精确到毫秒
  85. bool is_persist = 7; // 是否将消息持久化到数据库
  86. string message_content_back = 8;
  87. }
  88. message RecallMessageResp {
  89. int64 seq = 1; // 消息序列号
  90. }
  91. message SendRedPacketReq {
  92. ReceiverType receiver_type = 1; // 接收者类型,1:user;2:group
  93. int64 receiver_id = 2; // 用户id或者群组id
  94. MessageType message_type = 3; // 消息类型
  95. bytes message_content = 4; // 消息内容
  96. int64 send_time = 5; // 消息发送时间戳,精确到毫秒
  97. repeated int64 to_user_ids = 6; // 红包给到哪些用户(专属红包)
  98. string message_content_back = 7;
  99. }
  100. message SendRedPacketResp {
  101. int64 seq = 1; // 消息序列号
  102. }
  103. message PushRoomReq{
  104. int64 room_id = 1; // 房间id
  105. MessageType message_type = 2; // 消息类型
  106. bytes message_content = 3; // 消息内容
  107. int64 send_time = 4; // 消息发送时间戳,精确到毫秒
  108. bool is_persist = 5; // 是否将消息持久化
  109. bool is_priority = 6; // 是否优先推送
  110. }
  111. message AddFriendReq {
  112. int64 friend_id = 1; // 用户id
  113. string remarks = 2; // 备注
  114. string description = 3; // 描述
  115. }
  116. message DeleteFriendReq {
  117. int64 user_id = 1; // 用户id
  118. }
  119. message AgreeAddFriendReq {
  120. int64 user_id = 1; // 用户id
  121. string remarks = 2; // 备注
  122. }
  123. message SetFriendReq {
  124. int64 friend_id = 1; // 好友id
  125. string remarks = 2; // 备注
  126. string extra = 8; // 附加字段
  127. }
  128. message SetFriendResp {
  129. int64 friend_id = 1; // 好友id
  130. string remarks = 2; // 备注
  131. string extra = 8; // 附加字段
  132. }
  133. message Friend {
  134. int64 user_id = 1; // 用户id
  135. string phone_number = 2; // 电话号码
  136. string nickname = 3; // 昵称
  137. int32 sex = 4; // 性别
  138. string avatar_url = 5; // 头像地址
  139. string user_extra = 6; // 用户附加字段
  140. string remarks = 7; // 备注
  141. string extra = 8; // 附加字段
  142. }
  143. message GetFriendsResp {
  144. repeated Friend friends = 1;
  145. }
  146. message CreateGroupReq {
  147. string name = 1; // 名称
  148. string avatar_url = 2; // 头像
  149. string introduction = 3; // 简介
  150. string extra = 4; // 附加字段
  151. repeated int64 member_ids = 5; // 群组成员ID列表
  152. GroupKindType kind = 6; // 创建类型
  153. }
  154. message CreateGroupResp {
  155. int64 group_id = 1; // 群组id
  156. }
  157. message UpdateGroupReq {
  158. int64 group_id = 1; // 群组id
  159. string avatar_url = 2; // 头像
  160. string name = 3; // 名称
  161. string introduction = 4; // 简介
  162. string extra = 5; // 附加字段
  163. }
  164. message GetGroupReq {
  165. int64 group_id = 1;
  166. }
  167. message GetGroupResp {
  168. Group group = 1;
  169. MemberType member_type = 2;
  170. GroupUserStatusType group_user_status_type = 3;
  171. GroupNotice group_notice = 4; //群公告
  172. }
  173. message GroupNotice {
  174. string content = 1; //公告内容
  175. GroupNoticePublishType publish_type = 2; // 发布方式
  176. string publish_time = 3; // 发布时间
  177. }
  178. message Group {
  179. int64 group_id = 1; // 群组id
  180. string name = 2; // 名称
  181. string avatar_url = 3; // 头像
  182. string introduction = 4; // 简介
  183. int32 user_mum = 5; // 用户数
  184. int32 is_all_member_banned = 6; // 是否全员禁言(1:是 2:否)
  185. int32 is_all_add_friend = 10; // 是否允许加好友(1:是 2:否)
  186. string extra = 7; // 附加字段
  187. int64 create_time = 8; // 创建时间
  188. int64 update_time = 9; // 更新时间
  189. GroupKindType kind = 11; // 群类型
  190. }
  191. message GetGroupsResp {
  192. repeated Group groups = 1;
  193. }
  194. message AddGroupMembersReq {
  195. int64 group_id = 1; // 群组id
  196. repeated int64 user_ids = 2; // 用户id列表
  197. }
  198. message AddGroupMembersResp {
  199. repeated int64 user_ids = 1; // 已经在群组的用户id列表
  200. }
  201. message ScanQrCodeAddGroupReq {
  202. int64 group_id = 1; // 群组id
  203. }
  204. message ScanQrCodeAddGroupResp {
  205. bool isAlready = 1; // 是否已加入群
  206. }
  207. enum GroupKindType {
  208. CREATE_UNKNOWN = 0; // 未知
  209. CREATE_USER = 1; // 用户创建
  210. CREATE_SYSTEM = 2; // 系统创还能
  211. }
  212. enum MemberType {
  213. GMT_UNKNOWN = 0; // 未知
  214. GMT_ADMIN = 1; // 群主
  215. GMT_MEMBER = 2; // 成员
  216. GMT_MANAGE = 3; // 管理员
  217. }
  218. message UpdateGroupMemberReq {
  219. int64 group_id = 1; // 群组id
  220. int64 user_id = 2; // 用户id
  221. MemberType member_type = 3; // 成员类型
  222. string remarks = 4; // 备注
  223. string extra = 5; // 附加字段
  224. }
  225. message DeleteGroupMemberReq {
  226. int64 group_id = 1; // 群组id
  227. repeated int64 user_ids = 2; // 用户id
  228. }
  229. message GetGroupMembersReq {
  230. int64 group_id = 1;
  231. int64 limit = 2;
  232. }
  233. message GetGroupMembersResp {
  234. repeated GroupMember members = 1;
  235. }
  236. message GroupMember {
  237. int64 user_id = 1;
  238. string nickname = 2; // 昵称
  239. int32 sex = 3; // 性别
  240. string avatar_url = 4; // 头像地址
  241. string user_extra = 5; // 用户附加字段
  242. MemberType member_type = 6; // 成员类型
  243. string remarks = 7; // 备注
  244. string extra = 8; // 群组成员附加字段
  245. int32 status = 9; // 状态
  246. }
  247. message SetGroupMemberBannedReq {
  248. int64 group_id = 1; // 群组id
  249. repeated int64 user_ids = 2; // 用户id列表
  250. AllMemberBannedType is_all_member_banned = 3; // 全员禁言(1:是 2:否)
  251. }
  252. message SetGroupMemberRemoveBannedReq {
  253. int64 group_id = 1; // 群组id
  254. repeated int64 remove_user_ids = 2; // 解除用户id列表
  255. }
  256. enum AllMemberBannedType {
  257. UNKNOWN_All_Member_Banned = 0; // 未知
  258. YES_All_Member_Banned = 1; // 是-全员禁言
  259. NOT_All_Member_Banned = 2; // 否-全员禁言
  260. }
  261. message SetGroupMemberBannedResp {
  262. AllMemberBannedType is_all_member_banned = 3; // 全员禁言(1:是 2:否)
  263. repeated GroupMember members = 1; //禁言人员列表
  264. }
  265. message GetGroupBannedMembersReq {
  266. int64 group_id = 1;
  267. }
  268. message GetGroupBannedMembersResp {
  269. repeated GroupMember members = 1;
  270. }
  271. enum AllAddFriendType {
  272. UNKNOWN_All_Add_Friend = 0; // 未知
  273. YES_All_Add_Friend = 1; // 是-允许加好友
  274. NOT_All_Add_Friend = 2; // 否-禁止加好友
  275. }
  276. message SetGroupAddFriendReq {
  277. int64 group_id = 1; // 群组id
  278. AllAddFriendType is_all_add_friend = 2; // 是否允许加好友(1:是 2:否)
  279. }