golang-im聊天
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

212 строки
5.6 KiB

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