golang-im聊天
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.
 
 
 
 

295 lines
8.4 KiB

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