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.

103 lines
2.7 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. import "logic.ext.proto";
  7. service LogicInt {
  8. // 登录
  9. rpc ConnSignIn (ConnSignInReq) returns (Empty);
  10. // 消息同步
  11. rpc Sync (SyncReq) returns (SyncResp);
  12. // 设备收到消息回执
  13. rpc MessageACK (MessageACKReq) returns (Empty);
  14. // 设备离线
  15. rpc Offline (OfflineReq) returns (Empty);
  16. // 订阅房间
  17. rpc SubscribeRoom(SubscribeRoomReq)returns(Empty);
  18. // 发送消息
  19. rpc SendMessage (SendMessageReq) returns (SendMessageResp);
  20. // 推送消息到房间
  21. rpc PushRoom(PushRoomReq)returns(Empty);
  22. // 全服推送
  23. rpc PushAll(PushAllReq)returns(Empty);
  24. // 获取设备信息
  25. rpc GetDevice (GetDeviceReq) returns (GetDeviceResp);
  26. // 服务停止
  27. rpc ServerStop (ServerStopReq) returns (Empty);
  28. }
  29. message ConnSignInReq {
  30. int64 device_id = 1; // 设备id
  31. int64 user_id = 2; // 用户id
  32. string token = 3; // 秘钥
  33. string conn_addr = 4; // 服务器地址
  34. string client_addr = 5; // 客户端地址
  35. }
  36. message SyncReq {
  37. int64 user_id = 1; // 用户id
  38. int64 device_id = 2; // 设备id
  39. int64 seq = 3; // 客户端已经同步的序列号
  40. }
  41. message SyncResp {
  42. repeated Message messages = 1; // 消息列表
  43. bool has_more = 2; // 是否有更多数据
  44. }
  45. message MessageACKReq {
  46. int64 user_id = 1; // 用户id
  47. int64 device_id = 2; // 设备id
  48. int64 device_ack = 3; // 设备收到消息的确认号
  49. int64 receive_time = 4; // 消息接收时间戳,精确到毫秒
  50. }
  51. message OfflineReq {
  52. int64 user_id = 1; // 用户id
  53. int64 device_id = 2; // 设备id
  54. string client_addr = 3; // 客户端地址
  55. }
  56. message SubscribeRoomReq{
  57. int64 user_id = 1; // 用户id
  58. int64 device_id = 2; // 设备id
  59. int64 room_id = 3; // 房间id
  60. int64 seq = 4; // 消息序列号
  61. string conn_addr = 5; // 服务器地址
  62. }
  63. message PushAllReq{
  64. MessageType message_type = 1; // 消息类型
  65. bytes message_content = 2; // 消息内容
  66. int64 send_time = 3; // 消息发送时间戳,精确到毫秒
  67. }
  68. message GetDeviceReq {
  69. int64 device_id = 1;
  70. }
  71. message GetDeviceResp {
  72. Device device = 1;
  73. }
  74. message Device {
  75. int64 device_id = 1; // 设备id
  76. int64 user_id = 2; // 用户id
  77. int32 type = 3; // 设备类型,1:Android;2:IOS;3:Windows; 4:MacOS;5:Web
  78. string brand = 4; // 手机厂商
  79. string model = 5; // 机型
  80. string system_version = 6; // 系统版本
  81. string sdk_version = 7; // SDK版本
  82. int32 status = 8; // 在线状态,0:不在线;1:在线
  83. string conn_addr = 9; // 服务端连接地址
  84. string client_addr = 10; // 客户端地址
  85. int64 create_time = 11; // 创建时间
  86. int64 update_time = 12; // 更新时间
  87. }
  88. message ServerStopReq {
  89. string conn_addr = 1;
  90. }