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.
 
 
 
 

221 lines
6.0 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 AddFriend (AddFriendReq) returns (Empty);
  17. // 同意添加好友
  18. rpc AgreeAddFriend (AgreeAddFriendReq) returns (Empty);
  19. // 删除好友
  20. rpc DeleteFriend (DeleteFriendReq) returns (Empty);
  21. // 设置好友信息
  22. rpc SetFriend (SetFriendReq) returns (SetFriendResp);
  23. // 获取好友列表
  24. rpc GetFriends (Empty) returns (GetFriendsResp);
  25. // 创建群组
  26. rpc CreateGroup (CreateGroupReq) returns (CreateGroupResp);
  27. // 更新群组
  28. rpc UpdateGroup (UpdateGroupReq) returns (Empty);
  29. // 获取群组信息
  30. rpc GetGroup (GetGroupReq) returns (GetGroupResp);
  31. // 获取用户加入的所有群组
  32. rpc GetGroups (Empty) returns (GetGroupsResp);
  33. // 添加群组成员
  34. rpc AddGroupMembers (AddGroupMembersReq) returns (AddGroupMembersResp);
  35. // 更新群组成员信息
  36. rpc UpdateGroupMember (UpdateGroupMemberReq) returns (Empty);
  37. // 添加群组成员
  38. rpc DeleteGroupMember (DeleteGroupMemberReq) returns (Empty);
  39. // 获取群组成员
  40. rpc GetGroupMembers (GetGroupMembersReq) returns (GetGroupMembersResp);
  41. }
  42. message RegisterDeviceReq {
  43. int32 type = 2; // 设备类型
  44. string brand = 3; // 厂商
  45. string model = 4; // 机型
  46. string system_version = 5; // 系统版本
  47. string sdk_version = 6; // sdk版本号
  48. }
  49. message RegisterDeviceResp {
  50. int64 device_id = 1; // 设备id
  51. }
  52. message SendMessageReq {
  53. ReceiverType receiver_type = 1; // 接收者类型,1:user;2:group
  54. int64 receiver_id = 2; // 用户id或者群组id
  55. repeated int64 to_user_ids = 3; // 需要@的用户id列表
  56. MessageType message_type = 4; // 消息类型
  57. bytes message_content = 5; // 消息内容
  58. int64 send_time = 6; // 消息发送时间戳,精确到毫秒
  59. bool is_persist = 7; // 是否将消息持久化到数据库
  60. string message_content_back = 8;
  61. }
  62. message SendMessageResp {
  63. int64 seq = 1; // 消息序列号
  64. }
  65. message RecallMessageReq {
  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 RecallMessageResp {
  76. int64 seq = 1; // 消息序列号
  77. }
  78. message PushRoomReq{
  79. int64 room_id = 1; // 房间id
  80. MessageType message_type = 2; // 消息类型
  81. bytes message_content = 3; // 消息内容
  82. int64 send_time = 4; // 消息发送时间戳,精确到毫秒
  83. bool is_persist = 5; // 是否将消息持久化
  84. bool is_priority = 6; // 是否优先推送
  85. }
  86. message AddFriendReq {
  87. int64 friend_id = 1; // 用户id
  88. string remarks = 2; // 备注
  89. string description = 3; // 描述
  90. }
  91. message DeleteFriendReq {
  92. int64 user_id = 1; // 用户id
  93. }
  94. message AgreeAddFriendReq {
  95. int64 user_id = 1; // 用户id
  96. string remarks = 2; // 备注
  97. }
  98. message SetFriendReq {
  99. int64 friend_id = 1; // 好友id
  100. string remarks = 2; // 备注
  101. string extra = 8; // 附加字段
  102. }
  103. message SetFriendResp {
  104. int64 friend_id = 1; // 好友id
  105. string remarks = 2; // 备注
  106. string extra = 8; // 附加字段
  107. }
  108. message Friend {
  109. int64 user_id = 1; // 用户id
  110. string phone_number = 2; // 电话号码
  111. string nickname = 3; // 昵称
  112. int32 sex = 4; // 性别
  113. string avatar_url = 5; // 头像地址
  114. string user_extra = 6; // 用户附加字段
  115. string remarks = 7; // 备注
  116. string extra = 8; // 附加字段
  117. }
  118. message GetFriendsResp {
  119. repeated Friend friends = 1;
  120. }
  121. message CreateGroupReq {
  122. string name = 1; // 名称
  123. string avatar_url = 2; // 头像
  124. string introduction = 3; // 简介
  125. string extra = 4; // 附加字段
  126. repeated int64 member_ids = 5; // 群组成员ID列表
  127. }
  128. message CreateGroupResp {
  129. int64 group_id = 1; // 群组id
  130. }
  131. message UpdateGroupReq {
  132. int64 group_id = 1; // 群组id
  133. string avatar_url = 2; // 头像
  134. string name = 3; // 名称
  135. string introduction = 4; // 简介
  136. string extra = 5; // 附加字段
  137. }
  138. message GetGroupReq {
  139. int64 group_id = 1;
  140. }
  141. message GetGroupResp {
  142. Group group = 1;
  143. }
  144. message Group {
  145. int64 group_id = 1; // 群组id
  146. string name = 2; // 名称
  147. string avatar_url = 3; // 头像
  148. string introduction = 4; // 简介
  149. int32 user_mum = 5; // 用户数
  150. string extra = 6; // 附加字段
  151. int64 create_time = 7; // 创建时间
  152. int64 update_time = 8; // 更新时间
  153. }
  154. message GetGroupsResp {
  155. repeated Group groups = 1;
  156. }
  157. message AddGroupMembersReq {
  158. int64 group_id = 1; // 群组id
  159. repeated int64 user_ids = 2; // 用户id列表
  160. }
  161. message AddGroupMembersResp {
  162. repeated int64 user_ids = 1; // 已经在群组的用户id列表
  163. }
  164. enum MemberType {
  165. GMT_UNKNOWN = 0; // 未知
  166. GMT_ADMIN = 1; // 管理员
  167. GMT_MEMBER = 2; // 成员
  168. }
  169. message UpdateGroupMemberReq {
  170. int64 group_id = 1; // 群组id
  171. int64 user_id = 2; // 用户id
  172. MemberType member_type = 3; // 成员类型
  173. string remarks = 4; // 备注
  174. string extra = 5; // 附加字段
  175. }
  176. message DeleteGroupMemberReq {
  177. int64 group_id = 1; // 群组id
  178. int64 user_id = 2; // 用户id
  179. }
  180. message GetGroupMembersReq {
  181. int64 group_id = 1;
  182. }
  183. message GetGroupMembersResp {
  184. repeated GroupMember members = 1;
  185. }
  186. message GroupMember {
  187. int64 user_id = 1;
  188. string nickname = 2; // 昵称
  189. int32 sex = 3; // 性别
  190. string avatar_url = 4; // 头像地址
  191. string user_extra = 5; // 用户附加字段
  192. MemberType member_type = 6; // 成员类型
  193. string remarks = 7; // 备注
  194. string extra = 8; // 群组成员附加字段
  195. }