syntax = "proto3"; package pb; option go_package = "gim/pkg/pb/"; import "im.common.ext.proto"; import "im.connect.ext.proto"; import "im.logic.ext.proto"; service LogicInt { // 登录 rpc ConnSignIn (ConnSignInReq) returns (Empty); // 消息同步 rpc Sync (SyncReq) returns (SyncResp); // 设备收到消息回执 rpc MessageACK (MessageACKReq) returns (Empty); // 设备离线 rpc Offline (OfflineReq) returns (Empty); // 订阅房间 rpc SubscribeRoom(SubscribeRoomReq)returns(Empty); // 发送消息 rpc SendMessage (SendMessageReq) returns (SendMessageResp); // 推送消息到房间 rpc PushRoom(PushRoomReq)returns(Empty); // 全服推送 rpc PushAll(PushAllReq)returns(Empty); // 获取设备信息 rpc GetDevice (GetDeviceReq) returns (GetDeviceResp); // 服务停止 rpc ServerStop (ServerStopReq) returns (Empty); } message ConnSignInReq { int64 device_id = 1; // 设备id int64 user_id = 2; // 用户id string token = 3; // 秘钥 string conn_addr = 4; // 服务器地址 string client_addr = 5; // 客户端地址 } message SyncReq { int64 user_id = 1; // 用户id int64 device_id = 2; // 设备id int64 seq = 3; // 客户端已经同步的序列号 } message SyncResp { repeated Message messages = 1; // 消息列表 bool has_more = 2; // 是否有更多数据 } message MessageACKReq { int64 user_id = 1; // 用户id int64 device_id = 2; // 设备id int64 device_ack = 3; // 设备收到消息的确认号 int64 receive_time = 4; // 消息接收时间戳,精确到毫秒 } message OfflineReq { int64 user_id = 1; // 用户id int64 device_id = 2; // 设备id string client_addr = 3; // 客户端地址 } message SubscribeRoomReq{ int64 user_id = 1; // 用户id int64 device_id = 2; // 设备id int64 room_id = 3; // 房间id int64 seq = 4; // 消息序列号 string conn_addr = 5; // 服务器地址 } message PushAllReq{ MessageType message_type = 1; // 消息类型 bytes message_content = 2; // 消息内容 int64 send_time = 3; // 消息发送时间戳,精确到毫秒 } message GetDeviceReq { int64 device_id = 1; } message GetDeviceResp { Device device = 1; } message Device { int64 device_id = 1; // 设备id int64 user_id = 2; // 用户id int32 type = 3; // 设备类型,1:Android;2:IOS;3:Windows; 4:MacOS;5:Web string brand = 4; // 手机厂商 string model = 5; // 机型 string system_version = 6; // 系统版本 string sdk_version = 7; // SDK版本 int32 status = 8; // 在线状态,0:不在线;1:在线 string conn_addr = 9; // 服务端连接地址 string client_addr = 10; // 客户端地址 int64 create_time = 11; // 创建时间 int64 update_time = 12; // 更新时间 } message ServerStopReq { string conn_addr = 1; }