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.
 
 
 
 

266 lines
7.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 GetGroupBannedMembers (GetGroupBannedMembersReq) returns (GetGroupBannedMembersResp);
  47. }
  48. message RegisterDeviceReq {
  49. int32 type = 2; // 设备类型
  50. string brand = 3; // 厂商
  51. string model = 4; // 机型
  52. string system_version = 5; // 系统版本
  53. string sdk_version = 6; // sdk版本号
  54. }
  55. message RegisterDeviceResp {
  56. int64 device_id = 1; // 设备id
  57. }
  58. message SendMessageReq {
  59. ReceiverType receiver_type = 1; // 接收者类型,1:user;2:group
  60. int64 receiver_id = 2; // 用户id或者群组id
  61. repeated int64 to_user_ids = 3; // 需要@的用户id列表
  62. MessageType message_type = 4; // 消息类型
  63. bytes message_content = 5; // 消息内容
  64. int64 send_time = 6; // 消息发送时间戳,精确到毫秒
  65. bool is_persist = 7; // 是否将消息持久化到数据库
  66. string message_content_back = 8;
  67. }
  68. message SendMessageResp {
  69. int64 seq = 1; // 消息序列号
  70. }
  71. message RecallMessageReq {
  72. ReceiverType receiver_type = 1; // 接收者类型,1:user;2:group
  73. int64 receiver_id = 2; // 用户id或者群组id
  74. repeated int64 to_user_ids = 3; // 需要@的用户id列表
  75. MessageType message_type = 4; // 消息类型
  76. bytes message_content = 5; // 消息内容
  77. int64 send_time = 6; // 消息发送时间戳,精确到毫秒
  78. bool is_persist = 7; // 是否将消息持久化到数据库
  79. string message_content_back = 8;
  80. }
  81. message RecallMessageResp {
  82. int64 seq = 1; // 消息序列号
  83. }
  84. message SendRedPacketReq {
  85. ReceiverType receiver_type = 1; // 接收者类型,1:user;2:group
  86. int64 receiver_id = 2; // 用户id或者群组id
  87. MessageType message_type = 3; // 消息类型
  88. bytes message_content = 4; // 消息内容
  89. int64 send_time = 5; // 消息发送时间戳,精确到毫秒
  90. repeated int64 to_user_ids = 6; // 红包给到哪些用户(专属红包)
  91. string message_content_back = 7;
  92. }
  93. message SendRedPacketResp {
  94. int64 seq = 1; // 消息序列号
  95. }
  96. message PushRoomReq{
  97. int64 room_id = 1; // 房间id
  98. MessageType message_type = 2; // 消息类型
  99. bytes message_content = 3; // 消息内容
  100. int64 send_time = 4; // 消息发送时间戳,精确到毫秒
  101. bool is_persist = 5; // 是否将消息持久化
  102. bool is_priority = 6; // 是否优先推送
  103. }
  104. message AddFriendReq {
  105. int64 friend_id = 1; // 用户id
  106. string remarks = 2; // 备注
  107. string description = 3; // 描述
  108. }
  109. message DeleteFriendReq {
  110. int64 user_id = 1; // 用户id
  111. }
  112. message AgreeAddFriendReq {
  113. int64 user_id = 1; // 用户id
  114. string remarks = 2; // 备注
  115. }
  116. message SetFriendReq {
  117. int64 friend_id = 1; // 好友id
  118. string remarks = 2; // 备注
  119. string extra = 8; // 附加字段
  120. }
  121. message SetFriendResp {
  122. int64 friend_id = 1; // 好友id
  123. string remarks = 2; // 备注
  124. string extra = 8; // 附加字段
  125. }
  126. message Friend {
  127. int64 user_id = 1; // 用户id
  128. string phone_number = 2; // 电话号码
  129. string nickname = 3; // 昵称
  130. int32 sex = 4; // 性别
  131. string avatar_url = 5; // 头像地址
  132. string user_extra = 6; // 用户附加字段
  133. string remarks = 7; // 备注
  134. string extra = 8; // 附加字段
  135. }
  136. message GetFriendsResp {
  137. repeated Friend friends = 1;
  138. }
  139. message CreateGroupReq {
  140. string name = 1; // 名称
  141. string avatar_url = 2; // 头像
  142. string introduction = 3; // 简介
  143. string extra = 4; // 附加字段
  144. repeated int64 member_ids = 5; // 群组成员ID列表
  145. }
  146. message CreateGroupResp {
  147. int64 group_id = 1; // 群组id
  148. }
  149. message UpdateGroupReq {
  150. int64 group_id = 1; // 群组id
  151. string avatar_url = 2; // 头像
  152. string name = 3; // 名称
  153. string introduction = 4; // 简介
  154. string extra = 5; // 附加字段
  155. }
  156. message GetGroupReq {
  157. int64 group_id = 1;
  158. }
  159. message GetGroupResp {
  160. Group group = 1;
  161. }
  162. message Group {
  163. int64 group_id = 1; // 群组id
  164. string name = 2; // 名称
  165. string avatar_url = 3; // 头像
  166. string introduction = 4; // 简介
  167. int32 user_mum = 5; // 用户数
  168. string extra = 6; // 附加字段
  169. int64 create_time = 7; // 创建时间
  170. int64 update_time = 8; // 更新时间
  171. }
  172. message GetGroupsResp {
  173. repeated Group groups = 1;
  174. }
  175. message AddGroupMembersReq {
  176. int64 group_id = 1; // 群组id
  177. repeated int64 user_ids = 2; // 用户id列表
  178. }
  179. message AddGroupMembersResp {
  180. repeated int64 user_ids = 1; // 已经在群组的用户id列表
  181. }
  182. enum MemberType {
  183. GMT_UNKNOWN = 0; // 未知
  184. GMT_ADMIN = 1; // 管理员
  185. GMT_MEMBER = 2; // 成员
  186. }
  187. message UpdateGroupMemberReq {
  188. int64 group_id = 1; // 群组id
  189. int64 user_id = 2; // 用户id
  190. MemberType member_type = 3; // 成员类型
  191. string remarks = 4; // 备注
  192. string extra = 5; // 附加字段
  193. }
  194. message DeleteGroupMemberReq {
  195. int64 group_id = 1; // 群组id
  196. int64 user_id = 2; // 用户id
  197. }
  198. message GetGroupMembersReq {
  199. int64 group_id = 1;
  200. }
  201. message GetGroupMembersResp {
  202. repeated GroupMember members = 1;
  203. }
  204. message GroupMember {
  205. int64 user_id = 1;
  206. string nickname = 2; // 昵称
  207. int32 sex = 3; // 性别
  208. string avatar_url = 4; // 头像地址
  209. string user_extra = 5; // 用户附加字段
  210. MemberType member_type = 6; // 成员类型
  211. string remarks = 7; // 备注
  212. string extra = 8; // 群组成员附加字段
  213. }
  214. message SetGroupMemberBannedReq {
  215. int64 group_id = 1; // 群组id
  216. repeated int64 user_ids = 2; // 用户id列表
  217. AllMemberBannedType is_all_member_banned = 3; // 全员禁言(1:是 2:否)
  218. }
  219. enum AllMemberBannedType {
  220. UNKNOWN_All_Member_Banned = 0; // 未知
  221. YES_All_Member_Banned = 1; // 是-全员禁言
  222. NOT_All_Member_Banned = 2; // 否-全员禁言
  223. }
  224. message SetGroupMemberBannedResp {
  225. AllMemberBannedType is_all_member_banned = 3; // 全员禁言(1:是 2:否)
  226. repeated GroupMember members = 1; //禁言人员列表
  227. }
  228. message GetGroupBannedMembersReq {
  229. int64 group_id = 1;
  230. }
  231. message GetGroupBannedMembersResp {
  232. repeated GroupMember members = 1;
  233. }