grpc 协议 proto 文件存放
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.
 

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