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.

преди 2 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  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. }
  57. message SendMessageResp {
  58. int64 seq = 1; // 消息序列号
  59. }
  60. message PushRoomReq{
  61. int64 room_id = 1; // 房间id
  62. MessageType message_type = 2; // 消息类型
  63. bytes message_content = 3; // 消息内容
  64. int64 send_time = 4; // 消息发送时间戳,精确到毫秒
  65. bool is_persist = 5; // 是否将消息持久化
  66. bool is_priority = 6; // 是否优先推送
  67. }
  68. message AddFriendReq {
  69. int64 friend_id = 1; // 用户id
  70. string remarks = 2; // 备注
  71. string description = 3; // 描述
  72. }
  73. message AgreeAddFriendReq {
  74. int64 user_id = 1; // 用户id
  75. string remarks = 2; // 备注
  76. }
  77. message SetFriendReq {
  78. int64 friend_id = 1; // 好友id
  79. string remarks = 2; // 备注
  80. string extra = 8; // 附加字段
  81. }
  82. message SetFriendResp {
  83. int64 friend_id = 1; // 好友id
  84. string remarks = 2; // 备注
  85. string extra = 8; // 附加字段
  86. }
  87. message Friend {
  88. int64 user_id = 1; // 用户id
  89. string phone_number = 2; // 电话号码
  90. string nickname = 3; // 昵称
  91. int32 sex = 4; // 性别
  92. string avatar_url = 5; // 头像地址
  93. string user_extra = 6; // 用户附加字段
  94. string remarks = 7; // 备注
  95. string extra = 8; // 附加字段
  96. }
  97. message GetFriendsResp {
  98. repeated Friend friends = 1;
  99. }
  100. message CreateGroupReq {
  101. string name = 1; // 名称
  102. string avatar_url = 2; // 头像
  103. string introduction = 3; // 简介
  104. string extra = 4; // 附加字段
  105. repeated int64 member_ids = 5; // 群组成员ID列表
  106. }
  107. message CreateGroupResp {
  108. int64 group_id = 1; // 群组id
  109. }
  110. message UpdateGroupReq {
  111. int64 group_id = 1; // 群组id
  112. string avatar_url = 2; // 头像
  113. string name = 3; // 名称
  114. string introduction = 4; // 简介
  115. string extra = 5; // 附加字段
  116. }
  117. message GetGroupReq {
  118. int64 group_id = 1;
  119. }
  120. message GetGroupResp {
  121. Group group = 1;
  122. }
  123. message Group {
  124. int64 group_id = 1; // 群组id
  125. string name = 2; // 名称
  126. string avatar_url = 3; // 头像
  127. string introduction = 4; // 简介
  128. int32 user_mum = 5; // 用户数
  129. string extra = 6; // 附加字段
  130. int64 create_time = 7; // 创建时间
  131. int64 update_time = 8; // 更新时间
  132. }
  133. message GetGroupsResp {
  134. repeated Group groups = 1;
  135. }
  136. message AddGroupMembersReq {
  137. int64 group_id = 1; // 群组id
  138. repeated int64 user_ids = 2; // 用户id列表
  139. }
  140. message AddGroupMembersResp {
  141. repeated int64 user_ids = 1; // 已经在群组的用户id列表
  142. }
  143. enum MemberType {
  144. GMT_UNKNOWN = 0; // 未知
  145. GMT_ADMIN = 1; // 管理员
  146. GMT_MEMBER = 2; // 成员
  147. }
  148. message UpdateGroupMemberReq {
  149. int64 group_id = 1; // 群组id
  150. int64 user_id = 2; // 用户id
  151. MemberType member_type = 3; // 成员类型
  152. string remarks = 4; // 备注
  153. string extra = 5; // 附加字段
  154. }
  155. message DeleteGroupMemberReq {
  156. int64 group_id = 1; // 群组id
  157. int64 user_id = 2; // 用户id
  158. }
  159. message GetGroupMembersReq {
  160. int64 group_id = 1;
  161. }
  162. message GetGroupMembersResp {
  163. repeated GroupMember members = 1;
  164. }
  165. message GroupMember {
  166. int64 user_id = 1;
  167. string nickname = 2; // 昵称
  168. int32 sex = 3; // 性别
  169. string avatar_url = 4; // 头像地址
  170. string user_extra = 5; // 用户附加字段
  171. MemberType member_type = 6; // 成员类型
  172. string remarks = 7; // 备注
  173. string extra = 8; // 群组成员附加字段
  174. }