grpc 协议 proto 文件存放
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

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