Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

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