package cs; //常量 enum Constant_e { ProtoVersion = 2020061101; //协议版本 } //心跳(每60秒上报) message CMPing { } message SMPing { optional int32 param1 = 1; } //string元组 message MFStringTuple { repeated string values = 1; //values } //int32 pair message MFPairInt32 { optional int32 key = 1; //key optional int32 val = 2; //val } //int64 pair message MFPairInt64 { optional int64 key = 1; //key optional int64 val = 2; //val } //分页信息 message MFPaging { optional int32 curr_page = 1; //当前页(第一页是0) optional int32 page_size = 2; //每页记录数 optional int32 _total_page = 3; //总页数(服务器填充该字段) optional int32 _total_count = 4; //总记录数(服务器填充该字段) } //用户基础数据(可用于缓存,除下划线开头的字段会存储到db) message MFBaseUserData { optional string account_id = 1; //账号id optional string nickname = 2; //昵称 optional string avatar_url = 3; //头像 optional int32 sex = 4; //性别 1:男 2:女 0:未知 optional int32 last_login_time = 5; //最后登录时间 optional int64 guild_id = 6; //工会id(没有公会的话为0) optional int32 guild_job = 7; //公会职位 1:公会长 2:副公会长 3:精英成员 其他(0):普通会员 optional int32 vip_lv = 8 [default = 0]; //性别 optional int32 head = 9 [default = 0]; //头像框 optional int32 contribute = 10 [default = 0]; //贡献度 optional int64 user_value1 = 50; //用户字段1 optional int64 user_value2 = 51; //用户字段2 optional int64 user_value3 = 52; //用户字段3 optional int64 base_data_version = 100; //数据版本号 optional int32 _online = 101; //是否在线 } //临时用户自定义数据(不会存储每次上/下线时时都重置为0) message MFUserTempCustomData { optional int64 value1 = 1 [default = 0]; //自定义字段1 optional int64 value2 = 2 [default = 0]; //自定义字段2 optional int64 value3 = 3 [default = 0]; //自定义字段3 } //账号信息(自己) message MFAccountInfo { optional MFUserInfo user_info = 1; //用户数据 optional string user_sign = 2; //用户签名用于接口确权 } //用户信息 message MFUserInfo { optional MFBaseUserData base_data = 1; //基础数据 optional MFUserTempCustomData temp_custom_data = 2; //临时用户自定义数据 optional int32 is_sys_user = 3; //是否系统用户(主要在聊天时判断) } //用户状态 message MFUserStatus { optional string account_id = 1; //账号id optional int32 _online = 2; //是否在线 optional MFUserTempCustomData temp_custom_data = 3; //临时用户自定义数据 } //好友申请 message MFFriendApply { optional int64 idx = 1; //唯一索引id optional int64 applyid = 2; //applyid optional string target_id = 3; //target_id optional MFBaseUserData base_data = 4; //基础数据 } //公会申请 message MFGuildApply { optional int64 idx = 1; //唯一索引id optional int64 applyid = 2; //applyid optional int64 guild_id = 3; //guild_id optional MFBaseUserData base_data = 4; //基础数据 } //公会基本信息 message MFGuildBasic { optional int64 guild_id = 1; //公会id optional string guild_name = 2; //公会名 optional int32 guild_lv = 3; //公会等级 optional double guild_exp = 4; //公会经验 optional int32 guild_badge = 5; //公会徽章 optional int32 member_num = 6; //公会成员数 optional string guild_declaration = 7; //公会宣言 optional string owner_id = 8; //公会队长id optional string owner_name = 9; //公会队长名字 optional string owner_avatar_url = 10; //公会队长头像 optional int32 owner_sex = 23; //公会队长性别 optional int32 owner_vip_lv = 12 [default = 0]; //vip等级 optional int32 owner_head = 13 [default = 0]; //头像框 optional int32 join_unlimited = 11; //不限制加入 optional int32 join_cond1 = 20; //加入条件1 optional int32 join_cond2 = 21; //加入条件2 optional int32 applyed = 22; //是否已申请 optional int32 _gameid = 100; //gameid optional int32 _channel = 101; //channel optional int32 _createtime = 102; //createtime optional int32 _modifytime = 103; //modifytime optional int64 _name_ext1 = 104; //name_ext1 optional int64 _name_ext2 = 105; //name_ext2 optional int64 _guild_status = 106; //guild_status } //聊天消息 message MFChatMsg { /* 消息唯一id,递增序列,客户端可以用chat_channel + msg_uuid作为主键 !!!不同的频道msg_uuid可能重复 */ optional int64 msg_uuid = 1; optional MFUserInfo sender = 2; //发送者 optional MFUserInfo receiver = 3; //接收者 optional int32 chat_channel = 4; //聊天频道 optional int32 msg_type = 5; //消息类型 0:文本消息(json) 1:自定义协议 (json) 2:纯文本(但是任会做屏蔽字替换) optional string msg_body = 6; //消息内容(json类型里的字段!开头的会做屏蔽替换) optional int32 send_time = 7; //消息发送时间 } //登录好友服 message CMLoginCommonHead { optional int32 server_id = 1; //保留 } message CMLoginOld { optional string account_id = 3; //账号id optional string session_id = 20; //sessionid optional string nickname = 4; //昵称 optional string avatar_url = 5; //头像 optional int32 sex = 6; //性别 } message CMLogin { optional int32 server_id = 1; //保留(定死传1) optional string reserved2 = 2; //保留 optional string account_id = 3; //账号id optional string session_id = 20; //sessionid optional string nickname = 4; //昵称 optional int32 proto_version = 5; //协议版本号Constant_e.ProtoVersion optional int32 sex = 6; //性别 optional string avatar_url = 7; //头像 optional int32 vip_lv = 8; //性别 optional int32 head = 9; //头像框 } //登录回复 message SMLogin { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 optional MFAccountInfo account_info = 3; //账号信息 } //更新用户信息(增量更新,不需更新的字段不传即可) message CMUpdateUserInfo { optional string nickname = 2; //昵称 optional string avatar_url = 3; //头像 optional int32 sex = 4; //性别 1:男 2:女 0:未知 optional int32 vip_lv = 8; //性别 optional int32 head = 9; //头像框 optional int32 contribute = 10; //贡献度 optional int64 user_value1 = 50; //用户字段1 optional int64 user_value2 = 51; //用户字段2 optional int64 user_value3 = 52; //用户字段3 optional int32 delay_time = 100; //延迟更新(单位毫秒) optional int32 delay_flag = 101; //延迟更新标志(只能为1-16),相同的flag定时器覆盖 } //屏蔽字检查 message CMDirtyWordCheck { optional string text = 2; //待检查文本 } //屏蔽字检查回复 message SMDirtyWordCheck { optional int32 errcode = 1; //错误消息 optional string errmsg = 2; //错误消息 } //获取自己的公会信息 message CMGetUserGuild { optional string account_id = 1; //用户id,传空或不传获取自己 } //获取自己 message SMGetUserGuild { optional int32 errcode = 1; //1:公会不存在 optional string errmsg = 2; //错误消息 optional string account_id = 3; //用户id,传空或不传获取自己 optional int64 guild_id = 4; //工会id(没有公会的话为0) optional int32 guild_job = 5; //公会职位 1:公会长 2:副公会长 3:精英成员 其他(0):普通会员 } //获取好友列表 message CMFriendList { } //好友列表回复 message SMFriendList { optional int32 errcode = 1; //错误消息 optional string errmsg = 2; //错误消息 repeated MFUserInfo friend_list = 3; //好友列表 } //好友申请 message CMFriendApply { optional string friend_id = 1; //好友id optional string msg = 2; //消息 } //好友申请回复 message SMFriendApply { optional int32 errcode = 1; //1:已经是好友 optional string errmsg = 2; //消息描述 } //获取好友申请列表 message CMFriendApplyList { optional MFPaging paging = 1; //分页信息 } //获取好友申请列表回复 message SMFriendApplyList { optional int32 errcode = 1; // optional string errmsg = 2; //错误消息 optional MFPaging paging = 3; //分页信息回传 repeated MFFriendApply apply_list = 4; //申请加好友列表 } //同意申请 message CMFriendAgree { optional MFFriendApply apply = 1; //申请信息 } //同意申请回复 message SMFriendAgree { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误消息 } //拒绝好友申请 message CMFriendRefuse { optional MFFriendApply apply = 1; //申请信息 } //拒绝好友申请回复 message SMFriendRefuse { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误消息 } //删除好友 message CMFriendDelete { optional string friend_id = 1; //好友id } //删除好友回复 message SMFriendDelete { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误消息 optional string friend_id = 3; //好友id } //获取黑名单 message CMFriendBlackList { } //获取黑名单回复 message SMFriendBlackList { repeated MFUserInfo black_list = 1; //黑名单 } //添加黑名单 message CMFriendAddBlack { optional MFUserInfo user_info = 1; //好友信息 } //添加黑名单回复 message SMFriendAddBlack { optional int32 errcode = 1; // optional string errmsg = 2; //错误消息 } //删除黑名单 message CMFriendDeleteBlack { optional string account_id = 1; //好友id } //删除黑名单回复 message SMFriendDeleteBlack { optional int32 errcode = 1; // optional string errmsg = 2; //错误消息 } //获取好友/黑名单id列表 message CMFriendIdList { } //获取好友/黑名单id列表回复 message SMFriendIdList { optional int32 errcode = 1; // optional string errmsg = 2; //错误消息 repeated string friends = 3; //好友 repeated string blacklist = 4; //黑名单 } //建群 message CMTeamCreate { optional string team_name = 1; //群名称 } //建群返回 message SMTeamCreate { optional int32 errcode = 1; //1:群已存在 2: 你已经有群 optional string errmsg = 2; //错误消息 } //加群 message CMTeamJoin { optional int64 team_id = 1; //群id } //加群返回 message SMTeamJoin { optional int32 errcode = 1; //1:群id不存在 2:群已满 optional string errmsg = 2; //错误消息 } //同意加群 message CMTeamAgree { } message SMTeamAgree { optional int32 errcode = 1; optional string errmsg = 2; } //踢人 message CMTeamKick { optional string account_id = 1; } //踢人回复 message SMTeamKick { optional int32 errcode = 1; //1:群id错误 optional string errmsg = 2; //错误消息 } //退群 message CMTeamQuit { } message SMTeamQuit { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误消息 } //解散群 message CMTeamDismiss { } message SMTeamDismiss { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 } //群改名 message CMTeamRename { optional string new_team_name = 1; //新群名 } message SMTeamRename { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 } //获取公会信息 message CMGuildInfo { optional int64 guild_id = 1; //公会id } //获取公会信息返回 message SMGuildInfo { optional int32 errcode = 1; //1:公会不存在 optional string errmsg = 2; //错误消息 optional MFGuildBasic info = 3; //公会信息 } //建公会 message CMGuildCreate { optional string guild_name = 1; //公会名字 optional int32 guild_badge = 2; //公会徽标 optional string guild_declaration = 3; //公会徽标 optional int32 join_unlimited = 4; //不限制加入 optional int32 join_cond1 = 5; //加入条件1 optional int32 join_cond2 = 6; //加入条件2 } //建公会返回 message SMGuildCreate { optional int32 errcode = 1; //1:公会已存在 2: 你已经有公会 optional string errmsg = 2; //错误消息 optional int64 guild_id = 3; //公会id } //加公会 message CMGuildJoin { optional int64 guild_id = 1; //公会id } //加群返回 message SMGuildJoin { optional int32 errcode = 1; //1:公会id不存在 2:公会已满 optional string errmsg = 2; //错误消息 } //同意加公会 message CMGuildAgree { optional MFGuildApply apply = 1; //申请信息 optional int32 batchid = 2; //批次号(批量的时候id相同建议用时间戳) } message SMGuildAgree { optional int32 errcode = 1; optional string errmsg = 2; } //拒绝加公会申请 message CMGuildRefuse { optional MFGuildApply apply = 1; //申请信息 optional int32 batchid = 2; //批次号(批量的时候id相同建议用时间戳) } message SMGuildRefuse { optional int32 errcode = 1; optional string errmsg = 2; } //踢人 message CMGuildKick { optional string account_id = 1; } //踢人回复 message SMGuildKick { optional int32 errcode = 1; //1:群id错误 optional string errmsg = 2; //错误消息 } //退公会 message CMGuildQuit { } message SMGuildQuit { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误消息 } //解散公会 message CMGuildDismiss { } message SMGuildDismiss { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 } //修改公会信息(增量更新不需要修改的字段不传) message CMGuildChange { optional string guild_name = 1; //公会名字 optional int32 guild_badge = 2; //公会徽标 optional string guild_declaration = 3; //公会徽标 optional int32 join_unlimited = 4; //不限制加入 optional int32 join_cond1 = 5; //加入条件1 optional int32 join_cond2 = 6; //加入条件2 } message SMGuildChange { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 optional MFGuildBasic info = 3; //公会信息 } //查询公会 message CMGuildSearch { optional MFPaging paging = 1; //分页信息 optional string guild_name = 2; //公会名字 } message SMGuildSearch { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 optional MFPaging paging = 3; //分页信息 repeated MFGuildBasic guild_list = 4; //公会列表 } //公会排行榜 message CMGuildRank { optional MFPaging paging = 1; //分页信息 } message SMGuildRank { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 optional MFPaging paging = 3; //分页信息 repeated MFGuildBasic guild_list = 4; //公会列表 } //公会成员 message CMGuildMemberList { optional MFPaging paging = 1; //分页信息 optional string member_name = 2; //成员名字 } message SMGuildMemberList { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 optional MFPaging paging = 3; //分页信息 repeated MFUserInfo member_list = 4; //公会成员列表 optional int32 guild_lv = 5; //公会等级 } //获取公会申请列表 message CMGuildApplyList { optional MFPaging paging = 1; //分页信息 } //获取公会申请列表回复 message SMGuildApplyList { optional int32 errcode = 1; // optional string errmsg = 2; //错误消息 optional MFPaging paging = 3; //分页信息回传 repeated MFGuildApply apply_list = 4; //申请加公会友列表 optional int32 guild_lv = 5; //公会等级 } //公会动态(日志) message CMGuildLog { optional MFPaging paging = 1; //分页信息 } message SMGuildLog { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 optional MFPaging paging = 3; //分页信息 /* values[0]: account_id values[1]: 角色名 values[2]: 职位 1:队长 2:副队长 3:精英会员 其他(0):普通会员 values[3]: 行为时间(unix时间戳) values[4]: 行为 */ repeated MFStringTuple logs = 4; } //设置公会成员职位 message CMGuildMemberSetJob { optional string member_id = 1; //成员id optional int32 job = 2; //职位 } message SMGuildMemberSetJob { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 } //同意邀请 message CMGuildAgreeInvite { optional int64 guild_id = 1; //公会id optional string user_sign = 2; //邀请方签名 } message SMGuildAgreeInvite { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 } //新增公会经验 message CMGuildGainExp { optional int32 exp = 1; //检验值 } message SMGuildGainExp { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 } //查询公会成员信息 message CMGuildSearchMember { optional string target_id = 1; //账号id } message SMGuildSearchMember { optional int32 errcode = 1; //错误码 optional string errmsg = 2; //错误信息 optional MFGuildBasic guild_basic = 3; //公会基本信息 optional MFUserInfo user_info = 4; //用户信息 } //发送聊天消息 message CMSendChatMsg { optional int32 chat_channel = 1; //聊天频道 1: 世界 2:好友 3:战队 4:小队(这时target表示队伍Id) 5:大喇叭 6:跑马灯(只能收不能发) optional string target = 2; //目标 optional int32 msg_type = 3; ////消息类型 0:文本消息(json) 1:自定义协议 (json) 2:纯文本(但是任会做屏蔽字替换) optional string msg_body = 4; //消息内容 repeated string members = 5; //小队成员列表(包含自己) } //读取聊天消息列表并且开启聊天通知 message CMReadMsgAndOpenChatNotify { optional int32 curr_channel = 1; //当前频道 repeated MFPairInt64 last_ids = 2; //所有频道 key:聊天频道 val:该频道最后一次收到的消息id } //设置当前私聊目标 message CMSetCurrPrivateChatTarget { optional string private_target = 1; //私聊对象id, 只有当前聊频道是私聊时字段才有意义 optional int64 last_id = 2; //最后收到想消息id } //关闭聊天通知 message CMCloseChatNotify { } //发送自定义消息 message CMSendCustomMsg { repeated string target_list = 1; //目标列表 optional string msg = 2; //消息内容 optional int64 param1 = 3; //透传参数1 optional int64 param2 = 4; //透传参数2 optional int64 param3 = 5; //透传参数3 } //更新临时自定义数据 message CMUpdateTempCustomData { /* 更新方式 0: 覆盖 1: 用新数据和服务器数据做或运算 2: 用新数据和服务器数据做与运算 !!!注意 MFUserRaltimeData走的是增量更新如果不需要处理的字段不传就行 服务器对未传的自动不做任何处理 */ optional int32 update_type = 1; //更新方式 optional MFUserTempCustomData temp_custom_data = 2; //临时自定义数据 optional int32 delay_time = 100; //延迟更新(单位毫秒) optional int32 delay_flag = 101; //延迟更新标志(只能为1-16),相同的flag定时器覆盖 } //查询用户状态 message CMQueryUserStatus { repeated string user_list = 1; //用户列表 } //查询用户状态返回 message SMQueryUserStatus { repeated MFUserStatus status_list = 1; //用户状态列表 } //获取推荐好友 message CMRecommandFriend { } //获取推荐好友返回 message SMRecommandFriend { repeated MFUserInfo friend_list = 1; //好友列表 } //用户上/下线通知 message SMUserStatusNotify { repeated string online_users = 1; //上线用户 repeated string offline_users = 2; //下线用户 } //聊天消息通知 message SMChatMsgNotify { repeated MFChatMsg msg_list = 1; //消息列表,客户端需要根据chat_channel和msg_uuid更新本地的last_ids } //发送自定义消息 message SMCustomMsgNotify { optional string sender = 1; //发送者 optional string msg = 2; //消息内容 optional int64 param1 = 3; //透传参数1 optional int64 param2 = 4; //透传参数2 optional int64 param3 = 5; //透传参数3 } //更新用户信息 message SMUserInfoUpdate { repeated MFUserInfo user_infos = 1; //用户信息列表 } //删除好友通知a message SMDeleteFriendNotify { repeated string user_list = 1; //用户列表 } //新增黑名单 message SMAddBlackListNotify { repeated MFUserInfo user_infos = 1; //用户信息列表 } //删除黑名单通知 message SMDeleteBlackListNotify { repeated string user_list = 1; //用户列表 } //更新用户临时自定义信息 message SMUserTempCustomDataUpdate { optional string account_id = 1; //账号id optional MFUserTempCustomData temp_custom_data = 2; //用户临时自定义数据 } //更新账号信息通知 message SMUpdateAccountInfo { } //更新红点信息 message SMUpdateRedPointNotify { optional int32 red_point_flags = 1; //红点信息 1<<0:好友申请 1<<1:公会申请 1<<2:聊天红点 } //更新聊天红点信息 message SMUpdateChatRedPointNotify { repeated int32 has_unread_msg_channels = 1; //含有未读消息的渠道id列表,不在列表里的渠道默认不含有 } //更新私聊红点信息 message SMUpdatePrivateChatRedPointNotify { repeated string has_unread_msg_accounts = 1; //有未读消息的账号列表,不在列表里的好友more不含有 } //更新频道最后一次收到的消息id message SMUpdateChatChannelLastId { repeated MFPairInt64 last_ids = 1; //所有频道 key:聊天频道 val:该频道最后一次收到的消息id } //显示飘字 message SMShowErrorMsg { optional string msg = 1; //飘字内容 }