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.
 
 
 
 

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