72 KiB
72 KiB
平台模板 RPC 全量清单
核对日期:2026-09-05;基线:codex/local-platform-login @ 556c47a。本文是后续联调的索引与覆盖快照,不替代 01–05 章的字段契约,也不表示清单内接口已经验收。
范围与计数
- 共 86 个唯一名称:旧 RpcList 的 82 个(重复赋值按名称去重),加表外 submit_error、show_message、refresh_task_state,以及 h5RpcList.joinRoom。
- 这是 Game_Surface_3 平台模板的全量:包含大厅、房间、纯推送、历史/保留名、HTTP 特例和外部桥接。具体子游戏自定义 route/rpc 没有在模板中穷举定义,留到子游戏阶段;本轮不选择或接入真实子游戏。
- 86 是索引名称数,不是 86 个可直接调用的 WebSocket 接口。submit_log 不另计;握手 @toconcon、心跳 @serverheartbeat 和 webserve-服务器未工作 是传输控制数据,不是业务 RPC。
- platform 是合法路由名称,但本次模板发送扫描未发现独占 route=platform 的命名业务请求;不复制 agent/room 名称来凑第三份清单。纯推送的路由归档不是当前本地服务器抓包证明。
接入与验收状态口径
- L:本地真实 Cocos 启动、加载、游客登录已验收;仅 player_login。依据验收记录。
- R:新 PlatformRuntime 的严格平台分发表已接入(共 11 个,含 L),仅表示源码处理链存在;除 L 外,当前批次没有真实 RPC 成功验收证据。
- N:不在新 PlatformRuntime 平台分发表中;不代表旧 H5 或旧 PlatformSession 完全没有实现。协议常量存在、旧 room-handlers 存在,均不能算新 Runtime 已接入。
- X:保留、HTTP 特例或本地桥接,不按普通 WS 平台命令判定。具体子游戏生命周期支持也不等于其某个对局 rpc 已实现。
- 当前 LocalPlatformLogin 联调入口只允许发 agent/player_login;R 中的房间/切服条目仍受测试边界阻断。本文不放宽测试入口。
- 条目中“旧发送/接收函数”只表示静态定义,不能推断调用点活跃或服务器确实响应。请求/响应摘要取自对应协议章节;未明确之处保留待核实,不补字段。
发现的差异与注意事项
- refresh_task_state:当前旧源码引用未定义常量;02 章称硬编码字符串,已不符。新 routes.ts 也未收录。
- submit_error、show_message:旧路径确有硬编码发送/命名接收器,但不在旧 RpcList,也不在新 routes.ts;不能只扫常量表。
- submit_log:实际 rpc 仍为 submit_error;change_room 的响应为 change_seat;quick_enter_share_room 没有同名接收器。
- README 仍写 WS 双层包装,而 01 章已更正为单层 {app,route,rpc,data};MessageEvent.data 是浏览器事件壳。以 01 章与已验收传输实现为准。
- 02 章登录 version:string 与本地已验收 number 值有差异;openid/unionid 不得依据历史“游客可空”注释省略。
- 新 routes.ts 的注释分组不是权威 rpc→route 映射,例如 create_room/self_join_room/get_player_grade1/get_player_grade2 在 room 注释区域,但旧发送实际为 agent;本清单按协议与发送源码归档。
- can_award 的旧接收器调用未定义 C_Player.can_award;五个社交保留名没有旧 Net 接收器;不能按完整可用协议验收。
- update_roomcard/update_bean:05_Func.js 的原生 yPaytype 与 WVJB yPaytype 回调直接上行,02 章“仅接收、无主动请求”不完整;已在条目中补齐,不能划为只读接口。
- 本轮仅整理清单,未修改上述历史文档、业务代码、服务端或任何 Cocos 序列化资源。
配置来源与批次边界
- agentid/gameid/channelid/marketid/version 继续由现有配置来源经 runtime-config/local-startup 解析;各 RPC 只携带它所要求的字段,不能为统一外观给所有请求塞上整套身份。规范字段名为 channelid,不能写 chanelid。
- openid/unionid 与游客资料由现有 visitor-account 来源读取缓存或生成;登录后的 playerid 来自服务器与 Store。查询目标 playerid 与当前登录 playerid 的语义要逐项区分。
- roomcode/seat/shortcode/roomtype/deskinfo 等属于后续房间或子游戏范围;短信、原生数据、支付渠道等有各自前置条件,不能生成假值补齐。
- 后续优先梳理非房间平台 RPC 的只读查询,再逐项处理写操作和推送;房间相关及子游戏最后进行。列入本清单不等于授权执行。
按功能快速浏览
- 大厅 · 登录 / 账号(6):
player_login、query_player2、binding_phone、send_phone_checkcode、send_phone_code_wechat、setSign。 - 大厅 · 房间创建 / 进入(大厅侧)(8):
create_room、self_join_room、quick_enter_share_room、advanced_roomlist、advanced_createroom、get_share_room、getInfoByShortCode、switchRoomList。 - 大厅 · 战绩 / 排行 / 财富(5):
get_player_grade1、get_player_grade2、get_treasurelist、getShortCodeRankList、getVipRankList。 - 大厅 · 任务系统(5):
get_player_task、player_finish_task、get_task_award、refresh_task_state、can_award。 - 大厅 · 支付 / 充值 / 资产(4):
get_paylist、pay_succ、topup_card、giveCoin。 - 大厅 · 仓库 / 星星 / 魅力(4):
set_bankpwd、change_star、update_charm、setAllCharm。 - 大厅 · 邀请码 / 绑定(2):
binding_invitecode、get_player_invitecode。 - 大厅 · VIP 管理 / 黑白名单(4):
optBanList、getPlayerWhiteList、optWhiteList、setVipForbidSelect。 - 大厅 · 其它 agent 协议(8):
submit_opinion、submit_location、submit_phoneinfo、submit_error、kick_server、broadcast、connect_agentserver、playerBehavior。 - 房间 · 房间生命周期(8):
self_break_room、other_break_room、self_exit_room、other_exit_room、player_prepare、change_room、share_room、change_seat。 - 房间 · 进房推送(他人视角)(3):
other_join_room、other_offline、other_online。 - 房间 · 解散投票(开局后)(8):
self_apply_free_room、other_apply_free_room、self_agree_free_room、other_agree_free_room、self_refuse_free_room、other_refuse_free_room、free_room、beanroom_surrender。 - 房间 · 开局(2):
self_makewar、other_makewar。 - 房间 · 房间内社交(6):
send_text、send_voice、send_gift、send_phiz、call_phone、hangup_phone。 - 保留名称 · 房间社交(5):
receive_chat、play_voice、other_send_gift、other_callphone、other_hangup。 - 大厅 · 资产更新与系统推送(4):
update_bean、update_roomcard、kick_offline、show_message。 - 房间 · 服务器切换(room 侧)(1):
connect_roomserver。 - 子游戏 · 框架保留名称(2):
over_game、agentserver_game。 - 外部桥接 · 非网络 RPC(1):
joinRoom。
全量条目
大厅 · 登录 / 账号(6)
01. player_login
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:L / R;新 Rpc 常量:有。
- 用途:连接建立后
onopen自动发送;断线重连、切服后重发(12_Logic.js:35、:61 构造,09_Net.js:122Send_login注入)。 - 请求:构建身份 agentid/gameid/channelid/marketid/version;账号 openid/unionid/nickname/avatar/sex/province/city;设备与环境 machineid/machineroom/location/ip;按来源契约携带设备登录和缓存 playerid 等可选字段。完整结构见登录契约与 02/04 章。
- 响应/推送:state(0 成功);账号/资产字段,以及可能存在的房间恢复快照。完整结构见 04 章与当前 login-contract;本批只验收不在房的成功登录。
- 注意:真实本地启动→加载→游客登录已验收;version=1(number)已被本地服务器接受。02 章 version:string、游客 openid 可空的描述不能作为本地联调输入依据;本地服务要求 openid 与 unionid。房间恢复不在已验收范围。
- 依据:02-协议-agent路由.md;旧函数:Send_login、player_login。
02. query_player2
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:仓库转账前查询目标玩家信息。
- 请求:
agentid、playerid(目标玩家ID)。 - 响应/推送:
avatar(string)、nickname(string)、playerid(int);昵称/头像均空时提示"未找到对应玩家"。 - 依据:02-协议-agent路由.md;旧函数:Send_query_player2、query_player2。
03. binding_phone
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:绑定手机号。
- 请求:
agentid、playerid、phonenum、smmcode(短信验证码)。 - 响应/推送:
phonenum(string,回写C_Player.tel)。 - 依据:02-协议-agent路由.md;旧函数:Send_binding_phone、binding_phone。
04. send_phone_checkcode
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:发送手机短信验证码。
- 请求:
agentid、phonenum(构造点未集中定位,至少含手机号)。 - 响应/推送:无业务字段(
Desk.send_phone_checkcode为空实现,07_Desk.js:1342)。 - 注意:⚠️ 请求字段以后端实现为准。
- 依据:02-协议-agent路由.md;旧函数:Send_send_phone_checkcode、send_phone_checkcode。
05. send_phone_code_wechat
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:微信渠道发送手机验证码(绑定手机流程的另一入口)。
- 请求:
agentid、phonenum(唯一调用点 11_GameUI.js:2620-2623 当前被注释,按注释代码为 agentid+phonenum)。 - 响应/推送:无业务字段(
Desk.send_phone_code_wechat为空实现,07_Desk.js:1345)。 - 注意:⚠️ 框架完整定义并接线,但当前前端唯一调用点(11_GameUI.js:2623)被注释,实际不发送;字段以后端实现为准。
- 依据:02-协议-agent路由.md;旧函数:Send_send_phone_code_wechat、send_phone_code_wechat。
06. setSign
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:设置个性签名。
- 请求:
agentid、playerid、sign。 - 响应/推送:
sign(string,回显写入C_Player.sign)。 - 依据:02-协议-agent路由.md;旧函数:Send_setSign、setSign。
大厅 · 房间创建 / 进入(大厅侧)(8)
07. create_room
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:玩家创建房间。
- 请求:
agentid、playerid、gameid、roomtype(房间类型配置数组,见 doc04);Send_create_room自动注入ip=C_Player.ip、location=C_Player.addr(09_Net.js:106-107)。 - 响应/推送:
state(0成功)、roomcode、seat、roomtype、makewar、asetcount、shortcode、infinite;失败showerror/error。详见 04 → 房间响应公共字段。 - 依据:02-协议-agent路由.md;旧函数:Send_create_room、create_room。
08. self_join_room
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:R;新 Rpc 常量:有。
- 用途:输入房号 / 快速加入 / H5 唤起 / 进 VIP 配置房。
- 请求:
agentid、playerid、gameid、roomcode(房号);Send_self_join_room自动注入location=C_Player.addr、ip=C_Player.ip(09_Net.js:254-255);进 VIP 配置房入口额外带vipMatch:1(12_Logic.js:2171);比赛进房入口可带match_id。 - 响应/推送:
state、roomcode、seat、isowner、players[]、roomtype、makewar、asetcount、deskwar、deskinfo(重连快照)。详见 04 → 房间响应公共字段。 - 依据:02-协议-agent路由.md;旧函数:Send_self_join_room、self_join_room。
09. quick_enter_share_room
- 路由/通道:agent;方向:C→S;结果经其它 rpc 返回;状态:N;新 Rpc 常量:有。
- 用途:快速进入分享/星星场房间。
- 请求:
agentid、playerid、gameid、type(房间类型)、roomtype(可选)。 - 响应/推送:走 self_join_room 进房流程(无独立
Net.quick_enter_share_room接收函数,结果通过 self_join_room/show_message 等回包)。 - 注意:无 Net.quick_enter_share_room;关联 self_join_room/show_message,不能按同名请求响应配对。
- 依据:02-协议-agent路由.md;旧函数:Send_quick_enter_share_room。
10. advanced_roomlist
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:拉取 VIP/高级房间列表。
- 请求:
agentid、playerid、gameid。 - 响应/推送:房间列表对象,整包写入
GameData.snrRoomList并渲染(07_Desk.js:1176)。 - 依据:02-协议-agent路由.md;旧函数:Send_advanced_roomlist、advanced_roomlist。
11. advanced_createroom
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:创建 VIP/高级房间。
- 请求:
agentid、gameid、playerid、tea(茶水费)、infinite(0/1无限局)、roomtype、videoConfig(可选)、rebateLimit(可选)、rebateType(可选)。 - 响应/推送:
tea、rebateLimit及房间配置(整包写入GameData.snrRoomList,并回拉 advanced_roomlist,07_Desk.js:1180)。 - 依据:02-协议-agent路由.md;旧函数:Send_advanced_createroom、advanced_createroom。
12. get_share_room
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:获取分享/星星场房间列表(仅非大厅环境发送)。
- 请求:
agentid、playerid、gameid。 - 响应/推送:房间数组(
Desk.get_share_room/Game_Modify.getShareRoom处理)。 - 依据:02-协议-agent路由.md;旧函数:Send_get_share_room、get_share_room。
13. getInfoByShortCode
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:按短码批量查询房间信息(VIP 房列表)。
- 请求:
agentid、gameid、shortcodeList(短码列表)。 - 响应/推送:
roomInfo(短号房间信息) →GameUI.setVipRoomListData(07_Desk.js:1284)。 - 依据:02-协议-agent路由.md;旧函数:Send_getInfoByShortCode、getInfoByShortCode。
14. switchRoomList
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:开关房间在列表中的可见/可进入状态。
- 请求:
agentid、playerid、gameid、isClose(0开/1关)。 - 响应/推送:
state(0成功)、isClose;失败error(07_Desk.js:1267)。 - 依据:02-协议-agent路由.md;旧函数:Send_switchRoomList、switchRoomList。
大厅 · 战绩 / 排行 / 财富(5)
15. get_player_grade1
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:拉取战绩(类型1)。
- 请求:
agentid、playerid、gameid、type(可选)、direction(可选,翻页)、gradeidx(可选,分页索引)。 - 响应/推送:战绩数据(
gameCombat.get_player_grade1渲染)。 - 依据:02-协议-agent路由.md;旧函数:Send_get_player_grade1、get_player_grade1。
16. get_player_grade2
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:拉取战绩(类型2)。
- 请求:透传调用方
_data,构造点未集中定位;至少含agentid/playerid/gameid。 - 响应/推送:战绩数据(
gameCombat.get_player_grade2渲染)。 - 注意:⚠️ 请求字段构造点未定位,待核对。
- 依据:02-协议-agent路由.md;旧函数:Send_get_player_grade2、get_player_grade2。
17. get_treasurelist
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:财富榜。
- 请求:
agentid、gameid。 - 响应/推送:
list(排行数组) →Desk.get_treasurelist。 - 依据:02-协议-agent路由.md;旧函数:Send_get_treasurelist、get_treasurelist。
18. getShortCodeRankList
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:短号场排行榜。
- 请求:
agentid、playerid、shortcode。 - 响应/推送:成功为排行数据(整包写入
GameData.vipRank.data);失败error:true+message(07_Desk.js:1311)。 - 依据:02-协议-agent路由.md;旧函数:Send_getShortCodeRankList、getShortCodeRankList。
19. getVipRankList
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:VIP 排行榜。
- 请求:
agentid、limit(条数)。 - 响应/推送:
list(VIP排行数组) →GameData.rankList(07_Desk.js:1328)。 - 依据:02-协议-agent路由.md;旧函数:Send_getVipRankList、getVipRankList。
大厅 · 任务系统(5)
20. get_player_task
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:获取任务列表。
- 请求:
agentid、playerid、gameid。 - 响应/推送:
tasks(任务数组) →Desk.get_player_task。 - 依据:02-协议-agent路由.md;旧函数:Send_get_player_task、get_player_task。
21. player_finish_task
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:上报任务完成(如分享成功触发,06_Player.js:414)。
- 请求:
agentid、playerid、taskid。 - 响应/推送:
state(int)——state==1且当前taskstate==0时把C_Player.taskstate置 1(06_Player.js:476)。 - 注意:原文档"响应含
taskstate"无源码依据,已删除——接收函数仅读_msg.data.state。 - 依据:02-协议-agent路由.md;旧函数:Send_player_finish_task、player_finish_task。
22. get_task_award
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:领取任务奖励。
- 请求:
agentid、playerid、gameid、taskid。 - 响应/推送:
taskid(对应任务 state 置 2=已领取)、taskstate(写入C_Player.taskstate)(06_Player.js:482)。 - 依据:02-协议-agent路由.md;旧函数:Send_get_task_award、get_task_award。
23. refresh_task_state
- 路由/通道:agent;方向:C→S 意图;当前旧代码缺常量,不能认定可发送;状态:N;新 Rpc 常量:无。
- 用途:刷新任务可领取状态。
- 请求:透传
_data(构造点未集中定位,至少含agentid/playerid)。 - 响应/推送:服务器推送
can_award(见下条)。 - 注意:本次核实:09_Net.js:440 用 RpcList.refresh_task_state,但 02_Const.js 无此定义;全模板搜索未找到赋值。未被外部注入时该值为 undefined,JSON.stringify 会省略 rpc。02 章“硬编码字符串”的记载与当前源码不符,待后续专项核对;本轮不修代码。
- 依据:02-协议-agent路由.md;旧函数:Send_can_award。
24. can_award
- 路由/通道:agent;方向:S→C 推送;状态:N;新 Rpc 常量:有。
- 用途:服务器通知有任务可领取。
- 请求:无(纯推送)。
- 响应/推送:任务可领取标记(载荷字段待后端确认)。
- 注意:🐛
06_Player.js未定义Player.prototype.can_award(全文无此方法)。推送一旦到达,C_Player.can_award为 undefined,调用即抛 TypeError。当前为 bug,不可当正常协议使用。 - 依据:02-协议-agent路由.md;旧函数:Send_can_award、can_award。
大厅 · 支付 / 充值 / 资产(4)
25. get_paylist
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:拉取支付项列表。
- 请求:
agentid。 - 响应/推送:
paylist(支付项数组) →GameData.payList,并打开支付界面(09_Net.js:567)。 - 依据:02-协议-agent路由.md;旧函数:Send_get_paylist、get_paylist。
26. pay_succ
- 路由/通道:HTTP(保留 agent 信封);方向:C→HTTP;未见同名 Net 接收函数;状态:X;新 Rpc 常量:有。
- 用途:支付成功后通知服务器入账。
- 请求:
agentid、playerid、channelid、productid、payid、amount、money、paytype(05_Func.js:2240-2254 构造)。 - 响应/推送:无显式 WS 回包;资产变化通过
update_bean/update_roomcard推送(充房卡场景前端还会本地UpdateRoomcard,05_Func.js:2263)。 - 注意:原工程支付流程使用 HTTP;存在 Send_pay_succ 定义,但调用点被注释。不得仅凭常量/发送函数判为活跃 WS 请求。
- 依据:02-协议-agent路由.md;旧函数:Send_pay_succ。
27. topup_card
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:充值卡兑换。
- 请求:
agentid、playerid、cardno(卡号)。 - 响应/推送:
Desk.topup_card为空实现(07_Desk.js:1365),资产变化经 update_bean/update_roomcard 推送。 - 依据:02-协议-agent路由.md;旧函数:Send_topup_card、topup_card。
28. giveCoin
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:仓库面板向他人转账豆豆/金币。
- 请求:
agentid、playerid(转出)、toPlayerid(转入目标ID)、gameid、count(数量)、password(仓库密码)(11_GameUI.js:2132-2139)。 - 响应/推送:
state(0成功)、star2(转出后仓库星星数 →setWareHouseStarCOunt,非豆豆);失败showerror/error(07_Desk.js:1381)。 - 注意:响应
star2为仓库星星数,注意区别于豆豆余额。 - 依据:02-协议-agent路由.md;旧函数:Send_giveCoin、giveCoin。
大厅 · 仓库 / 星星 / 魅力(4)
29. set_bankpwd
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:设置仓库密码。
- 请求:
agentid、playerid、unionid、password。 - 响应/推送:
state(0成功)、password;失败showerror/error(07_Desk.js:1228)。 - 依据:02-协议-agent路由.md;旧函数:Send_set_bankpwd、set_bankpwd。
30. change_star
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:仓库存/取(豆豆 ↔ 仓库星星)。
- 请求:
agentid、playerid、mode(0存入/1取出,源码safeInputType-1)、password(仓库密码,字符串)、count(数量)(11_GameUI.js:2065-2069 调用点齐全携带此 5 字段)。 - 响应/推送:
state(0成功)、star1(更新后豆豆余额 →update_bean2)、star2(更新后仓库星星数 →setWareHouseStarCOunt)、msg(可选提示)、count(可选,回填安全输入);失败showerror/error(07_Desk.js:1238)。 - 注意:原审计疑虑"
mode/password未见"——经核对仓库存/取调用点(11_GameUI.js:2068-2069)确含mode与password,文档正确,疑虑解除。审计提到的"agentid/playerid/toPlayerid/gameid/count"实为相邻的giveCoin转账包(11_GameUI.js:2132-2139),并非本 rpc。 - 依据:02-协议-agent路由.md;旧函数:Send_change_star、change_star。
31. update_charm
- 路由/通道:agent;方向:S→C 推送;状态:N;新 Rpc 常量:有。
- 用途:座位魅力值更新。
- 请求:
Net.Send_update_charm(09_Net.js:727) 已定义但无任何调用点;实际只作服务器→客户端推送。 - 响应/推送:
seatlist:[ {seat(int),charm(number)} ](07_Desk.js:1260 遍历 setCharm)。 - 依据:02-协议-agent路由.md;旧函数:Send_update_charm、update_charm。
32. setAllCharm
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:批量设置总魅力。
- 请求:
agentid、playerid、gameid、value(11_GameUI.js:1269-1275)。 - 响应/推送:无显式业务字段,
Desk.setAllCharm仅本地存储并提示成功(07_Desk.js:1321)。 - 依据:02-协议-agent路由.md;旧函数:Send_setAllCharm、setAllCharm。
大厅 · 邀请码 / 绑定(2)
33. binding_invitecode
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:绑定邀请码。
- 请求:
agentid、playerid、invitecode(11_GameUI.js:1367-1369)。 - 响应/推送:
state(0成功时写入invitecode)、invitecode、error(提示文案)(06_Player.js:251)。 - 依据:02-协议-agent路由.md;旧函数:Send_binding_invitecode、binding_invitecode。
34. get_player_invitecode
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:获取自己的邀请码(打开绑定界面)。
- 请求:
agentid、playerid、unionid、openid(11_GameUI.js:1378-1382)。 - 响应/推送:
invitecode(string) →C_Player.setInvitecod并打开绑定界面(09_Net.js:607)。 - 注意:修正原文档——请求字段为
agentid/playerid/unionid/openid,无gameid,新增unionid/openid(11_GameUI.js:1378)。 - 依据:02-协议-agent路由.md;旧函数:Send_get_player_invitecode、get_player_invitecode。
大厅 · VIP 管理 / 黑白名单(4)
35. optBanList
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:黑名单查看/添加/移除(多入口)。
- 请求:随入口不同,公共字段
agentid、playerid、type: - 响应/推送:
type(1/3/4/5/6)、banList(黑名单数组)、message(可选提示)(07_Desk.js:1289)。 - 依据:02-协议-agent路由.md;旧函数:Send_optBanList、optBanList。
36. getPlayerWhiteList
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:获取白名单。
- 请求:
agentid、playerid、gameid。 - 响应/推送:
whiteList(数组) →GameData.whiteList.data(07_Desk.js:1412)。 - 依据:02-协议-agent路由.md;旧函数:Send_getPlayerWhiteList、getPlayerWhiteList。
37. optWhiteList
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:白名单添加/修改/删除。
- 请求:
agentid、playerid、gameid、shortcode、mode、userid(目标ID): - 响应/推送:
whiteList(更新后数组)、mode(可选)、message(可选提示)(07_Desk.js:1398)。 - 依据:02-协议-agent路由.md;旧函数:Send_optWhiteList、optWhiteList。
38. setVipForbidSelect
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:VIP 房禁止玩家选桌开关。
- 请求:
agentid、playerid、gameid、forbidSelect(1开/0关,11_GameUI.js:2631-2639)。 - 响应/推送:
state(0成功)、forbidSelect(1开/0关);失败error(07_Desk.js:1348)。 - 依据:02-协议-agent路由.md;旧函数:Send_setVipForbidSelect、setVipForbidSelect。
大厅 · 其它 agent 协议(8)
39. submit_opinion
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:提交反馈/意见。
- 请求:
agentid、playerid、gameid、content。 - 响应/推送:
state(0成功)(07_Desk.js:1100)。 - 依据:02-协议-agent路由.md;旧函数:Send_submit_opinion、submit_opinion。
40. submit_location
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:提交定位信息(仅非大厅环境发送)。
- 请求:
agentid、playerid、info(定位对象)。 - 响应/推送:经
Game.submit_location处理(09_Net.js:583)。 - 依据:02-协议-agent路由.md;旧函数:Send_submit_location、submit_location。
41. submit_phoneinfo
- 路由/通道:agent;方向:C→S 请求(无响应处理);状态:N;新 Rpc 常量:有。
- 用途:提交手机/通讯录信息(仅非大厅环境发送)。
- 请求:
agentid、playerid、info{phoneInfo(手机信息),addrBook(通讯录) }。 - 响应/推送:
Net.submit_phoneinfo接收函数为空实现(09_Net.js:722)。 - 依据:02-协议-agent路由.md;旧函数:Send_submit_phoneinfo、submit_phoneinfo。
42. submit_error
- 路由/通道:agent;方向:C→S;同名回包被旧接收器忽略;状态:N;新 Rpc 常量:无。
- 用途:异常/日志上报(Net.submit_error 与 Net.submit_log 共用同一个实际 rpc)。
- 请求:
packet(出错数据包字符串)、msg(错误/堆栈信息)、playerid、agentid、gameid(09_Net.js:66-72)。 - 响应/推送:服务器若回 rpc
"submit_error",前端在分发处直接return忽略(12_Logic.js:235)。 - 注意:submit_log 是本地函数别名,不是第二个线上 rpc;不能重复计数。
- 依据:02-协议-agent路由.md;旧函数:submit_error、submit_log。
43. kick_server
- 路由/通道:agent;方向:C→S 请求 + S→C 推送;状态:R;新 Rpc 常量:有。
- 用途:管理端踢出玩家 / 被踢下线弹窗。
- 请求:
agentid等(构造点未集中定位)。 - 响应/推送:
msg(踢出提示) →GameUI.OpenKick(07_Desk.js:1108)。 - 注意:⚠️ 请求字段待补。
- 依据:02-协议-agent路由.md;旧函数:Send_kick_server、kick_server。
44. broadcast
- 路由/通道:agent;方向:C→S 请求 + S→C 推送;状态:N;新 Rpc 常量:有。
- 用途:广播消息/滚动公告(主要为服务器推送)。
- 请求:
agentid等(Send_broadcast存在,09_Net.js:530)。 - 响应/推送:
msgtype(0消息框/1滚动公告,可选,缺省 0)、msgcontent(内容)(07_Desk.js:1112)。 - 依据:02-协议-agent路由.md;旧函数:Send_broadcast、broadcast。
45. connect_agentserver
- 路由/通道:agent;方向:双向(切服);状态:R;新 Rpc 常量:有。
- 用途:切换到大厅服务器。
- 请求:
Send_connect_agentserver(09_Net.js:515) 透传_data(切服时使用)。 - 响应/推送:
agentserver(新大厅服地址)、opt(切换原因,如other_break_room/free_room)(09_Net.js:518)。 - 依据:02-协议-agent路由.md;旧函数:Send_connect_agentserver、connect_agentserver。
46. playerBehavior
- 路由/通道:HTTP GET(历史 agent 名称);方向:C→HTTP;状态:X;新 Rpc 常量:有。
- 用途:玩家行为埋点。
- 请求:原 WS 路径(agentid/gameid/playerid/tag)被注释(09_Net.js:799-806),实际改走独立 HTTP GET 上报
http://test3.1888day.com/api/gamedo/gamedo?agentid=&gameid=&playerid=&tag=(09_Net.js:807-815)。 - 响应/推送:HTTP 回调
playerBehavior_Succ/_Fail(09_Net.js:818/822);WS 接收函数Net.playerBehavior(09_Net.js:826) 当前无触发。 - 注意:当前调用走独立 HTTP 埋点地址,WS 段被注释;不归入本地 WebSocket 验收。
- 依据:02-协议-agent路由.md;旧函数:Send_playerBehavior、playerBehavior。
房间 · 房间生命周期(8)
47. self_break_room
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:房主在未开局前主动解散房间。
- 请求:仅通用四字段。
- 响应/推送:
roomcode(可选,用于从本地"我的房间"列表移除)。处理:清空牌桌、回大厅。 - 依据:03-协议-room路由.md;旧函数:Send_self_break_room、self_break_room。
48. other_break_room
- 路由/通道:room;方向:S→C 推送;状态:N;新 Rpc 常量:有。
- 用途:他人(房主)解散房间,推送给房内其余玩家。
- 请求:无(纯推送)。
- 响应/推送:无业务字段;触发
Func.exitRoom()、清桌、回大厅、提示"房主已解散房间!"。 - 注意:常伴随 connect_agentserver 切服包(
data.opt == other_break_room,见下文)。 - 依据:03-协议-room路由.md;旧函数:other_break_room。
49. self_exit_room
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:R;新 Rpc 常量:有。
- 用途:自己在未开局前退出房间。
- 请求:仅通用四字段(发送处见
08_Utl_Output.js:993)。 - 响应/推送:
isowner(可选,==1 且非无限局时把房间加回本地列表),seat(可选,传给Game_Modify.myExitRoom),roomcode(可选)。 - 依据:03-协议-room路由.md;旧函数:Send_self_exit_room、self_exit_room。
50. other_exit_room
- 路由/通道:room;方向:S→C 推送;状态:R;新 Rpc 常量:有。
- 用途:其他玩家(未开局)退出房间。
- 请求:无(纯推送)。
- 响应/推送:
seat(离开者座位)。处理:清该座位、playercnt--;若seat==0且非无限局,提示房主已离开。 - 依据:03-协议-room路由.md;旧函数:other_exit_room。
51. player_prepare
- 路由/通道:room;方向:C→S 请求 + S→C 推送;状态:R;新 Rpc 常量:有。
- 用途:玩家点击准备(
needprepare==1的房间)。 - 请求:仅通用四字段。
- 响应/推送:
seat(准备者座位),deskwar(可选;为真表示满足开战条件 →HideStartScene+Game_Modify.StartWar)。推送给房内所有人。 - 依据:03-协议-room路由.md;旧函数:Send_player_prepare、player_prepare。
52. change_room
- 路由/通道:room;方向:C→S;响应 rpc=change_seat;状态:N;新 Rpc 常量:有。
- 用途:玩家请求换座 / 换桌。
- 请求:仅通用四字段(不带目标座位,由服务器决定换到哪个空位)。发送处
11_GameUI.js:1945、08_Utl_Output.js:1006。 - 响应/推送:rpc 名改为
change_seat,data:seat1,seat2(两个互换的座位号)。处理:交换两座 Desk 信息,若自己在其中则C_Player.SetSeat更新。 - 注意:上行 rpc=
change_room,下行 rpc=change_seat,二者成对。 - 依据:03-协议-room路由.md;旧函数:Send_change_room。
53. share_room
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:把房间分享到世界房列表。
- 请求:通用四字段;可选
roomlist、roomtype、shareType(高级房分享时携带,见11_GameUI.js:1734/11_GameUI.js:1891)。 - 响应/推送:无业务字段;提示"已成功分享至平台!"。
- 依据:03-协议-room路由.md;旧函数:Send_share_room、share_room。
54. change_seat
- 路由/通道:room;方向:S→C(change_room 的响应);状态:N;新 Rpc 常量:有。
- 用途:服务器指定两座互换。
- 请求:无同名上行;上行是 change_room。
- 响应/推送:seat1、seat2。
- 注意:独立列名,不能把 change_room 与 change_seat 合成一条而漏计。
- 依据:03-协议-room路由.md;旧函数:change_seat。
房间 · 进房推送(他人视角)(3)
55. other_join_room
- 路由/通道:room;方向:S→C 推送;状态:R;新 Rpc 常量:有。
- 用途:其他玩家加入当前房间。
- 请求:无(纯推送;自己进房用
self_join_room,走 agent 路由,见 02 章)。 - 响应/推送:
seat(新玩家座位) + 该玩家完整对象(直接传给Player.SetDeskInfo,见 04 · Player 座位对象): - 注意:⚠️
charm/sign是否每次必含、其余字段是否完整以Player.SetDeskInfo实际读取为准,详见 04 章。 - 依据:03-协议-room路由.md;旧函数:other_join_room。
56. other_offline
- 路由/通道:room;方向:S→C 推送;状态:R;新 Rpc 常量:有。
- 用途:其他玩家离线。
- 请求:无(纯推送)。
- 响应/推送:
seat。处理:该座onstate=1,刷新 UI。 - 依据:03-协议-room路由.md;旧函数:other_offline。
57. other_online
- 路由/通道:room;方向:S→C 推送;状态:R;新 Rpc 常量:有。
- 用途:其他玩家重新上线。
- 请求:无(纯推送)。
- 响应/推送:
seat,ip。处理:该座onstate=0、更新 ip。 - 依据:03-协议-room路由.md;旧函数:other_online。
房间 · 解散投票(开局后)(8)
58. self_apply_free_room
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:自己申请解散房间。
- 请求:仅通用四字段。
- 响应/推送:
agreefree{state:[各座同意状态数组],countdown:倒计时 }。 - 依据:03-协议-room路由.md;旧函数:Send_self_apply_free_room、self_apply_free_room。
59. other_apply_free_room
- 路由/通道:room;方向:S→C 推送;状态:N;新 Rpc 常量:有。
- 用途:他人申请解散。
- 请求:无(纯推送)。
- 响应/推送:
seat(申请者),agreefree{state[],countdown}。 - 依据:03-协议-room路由.md;旧函数:other_apply_free_room。
60. self_agree_free_room
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:自己同意解散。
- 请求:仅通用四字段。
- 响应/推送:无业务字段;本地把自己加入同意列表、刷新投票 UI。
- 依据:03-协议-room路由.md;旧函数:Send_self_agree_free_room、self_agree_free_room。
61. other_agree_free_room
- 路由/通道:room;方向:S→C 推送;状态:N;新 Rpc 常量:有。
- 用途:他人同意解散。
- 请求:无(纯推送)。
- 响应/推送:
seat(同意者)。 - 依据:03-协议-room路由.md;旧函数:other_agree_free_room。
62. self_refuse_free_room
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:自己拒绝解散。
- 请求:仅通用四字段。
- 响应/推送:无业务字段;清空同意列表、投票结果置不通过、弹"已拒绝"结果。
- 依据:03-协议-room路由.md;旧函数:Send_self_refuse_free_room、self_refuse_free_room。
63. other_refuse_free_room
- 路由/通道:room;方向:S→C 推送;状态:N;新 Rpc 常量:有。
- 用途:他人拒绝解散(任一人拒绝即否决本轮)。
- 请求:无(纯推送)。
- 响应/推送:
seat(拒绝者)。 - 依据:03-协议-room路由.md;旧函数:other_refuse_free_room。
64. free_room
- 路由/通道:room;方向:S→C 推送;状态:N;新 Rpc 常量:有。
- 用途:解散投票最终结果。
- 请求:无(纯推送)。
- 响应/推送:freeNow;deskfree、roomcard、tips、time、seats 按具体分支读取,字段语义见 03 章。
- 注意:可伴随 connect_agentserver 切服包(
data.opt == free_room,见下文)。 - 依据:03-协议-room路由.md;旧函数:free_room。
65. beanroom_surrender
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:N;新 Rpc 常量:有。
- 用途:豆豆房(金币房)投降。
- 请求:通用四字段 +
count(投降数量 =GameData.surrendCount,发送处11_GameUI.js:1245)。 - 响应/推送:
state(0=成功 →Game_Modify.onSurrender(_msg)); 失败时showerror(==1 则弹) /error(错误文本)。 - 注意:⚠️ 未见成对的
other_xxx推送,是否向房内其他玩家广播他人投降待后端确认。 - 依据:03-协议-room路由.md;旧函数:Send_beanroom_surrender、beanroom_surrender。
房间 · 开局(2)
66. self_makewar
- 路由/通道:room;方向:C→S 请求 → S→C 响应(self_makewar);状态:N;新 Rpc 常量:有。
- 用途:房主主动开局。
- 请求:仅通用四字段。
- 响应/推送:rpc=
self_makewar,无业务字段;触发Desk.self_makewar→Game_Modify.StartWar(_msg)。 - 依据:03-协议-room路由.md;旧函数:Send_self_makewar、self_makewar。
67. other_makewar
- 路由/通道:room;方向:S→C 推送;状态:N;新 Rpc 常量:有。
- 用途:开局广播(房主开局或满员自动开局)给房内其他玩家。
- 请求:无(纯推送)。
- 响应/推送:开局信息对象 →
Desk.makewar→Game_Modify.StartWar(msg)。 - 注意:实际发牌等对局数据在此之后通过子游戏内协议下发(见 05 章)。
- 依据:03-协议-room路由.md;旧函数:other_makewar。
房间 · 房间内社交(6)
68. send_text
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 文字聊天;状态:N;新 Rpc 常量:有。
- 用途:文字聊天 / 全服公告 / 预定义常用语。
- 请求:通用四字段 +
text(内容;点常用语时为Game_Config.Info.TextContent[spid-206]文本) +type(0=普通 / 1=全服公告;按是否勾选公告设 0/1) +info(可选;有 info 时type改为 2)。发送处11_GameUI.js:1170(输入框)、11_GameUI.js:2717(常用语)。 - 响应/推送:
type(0=普通 / 1=全服公告 / 2=机器人 / 3=预定义文字),text(内容;type==3 时为Game_Config.Info.TextContent的 1 基索引,客户端按(idx-1)%len取文本),seat(发送者座位,type≠1 时使用),info(type==2 时附加)。 - 注意:百人场(
vipInfinite)只处理 type==1 公告分支。 - 依据:03-协议-room路由.md;旧函数:Send_send_text、send_text。
69. send_voice
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 语音;状态:N;新 Rpc 常量:有。
- 用途:发送语音消息。
- 请求:通用四字段 +
voiceurl(已上传音频地址) +time(时长) +info(可选) +type(可选,有 info 时为 2)。发送处05_Func.js:1714、05_Func.js:2984。 - 响应/推送:
type(0=普通 / 2=机器人),seat(发送座位),voiceurl,time,info(type==2 时)。 - 依据:03-协议-room路由.md;旧函数:Send_send_voice、send_voice。
70. send_gift
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 互动/送礼;状态:N;新 Rpc 常量:有。
- 用途:向指定座位送互动礼物。
- 请求:通用四字段 +
giftid(=spid_up - 255,按钮精灵号算出,发送处11_GameUI.js:2725) +receiveseat(=GameData.InteractPlayer) +info(可选) +type(有 info 时为 2)。 - 响应/推送:
type(0=普通 / 2=机器人),giftid(客户端做(giftid-1)%4+1归一为 1~4 动画),sendseat(发送座位),receiveseat(接收座位),info(type==2 时)。 - 依据:03-协议-room路由.md;旧函数:Send_send_gift、send_gift。
71. send_phiz
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 表情;状态:N;新 Rpc 常量:有。
- 用途:发送表情动画。
- 请求:通用四字段 +
text(=up_id,表情按钮序号 1~ConstVal.Emotion.count,发送处11_GameUI.js:815) +info(可选) +type(有 info 时为 2)。 - 响应/推送:
type(0=普通 / 2=机器人),text(表情 ID,客户端按(text-1)%ConstVal.Emotion.src_list.length+1归一),seat(发送座位),info(type==2 时)。 - 依据:03-协议-room路由.md;旧函数:Send_send_phiz、send_phiz。
72. call_phone
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 拨打电话;状态:N;新 Rpc 常量:有。
- 用途:拨打/接听电话,置玩家
onstate=2(通话中)。 - 请求:仅通用四字段(发送处
06_Player.js:380/:388/:396,对应接起/电话进来/去电三种触发)。 - 响应/推送:rpc=
call_phone,seat(拨打者座位 → 该玩家onstate=2)。 - 依据:03-协议-room路由.md;旧函数:Send_call_phone、call_phone。
73. hangup_phone
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 挂断电话;状态:N;新 Rpc 常量:有。
- 用途:挂断电话,置玩家
onstate=0。 - 请求:仅通用四字段(发送处
06_Player.js:372)。 - 响应/推送:rpc=
hangup_phone,seat(挂断者座位 → 该玩家onstate=0)。 - 依据:03-协议-room路由.md;旧函数:Send_hangup_phone、hangup_phone。
保留名称 · 房间社交(5)
74. receive_chat
- 路由/通道:room(文档归类,线上未确认);方向:未确认(文档推测为下行);状态:X;新 Rpc 常量:有。
- 用途:聊天推送的另一可能 rpc 名(与
send_text成对)。 - 请求:未发现同名发送链。
- 响应/推送:未定义,不能套用其它 rpc 字段。
- 注意:常量存在,旧 Net 无同名接收器。与实际已实现的 send_voice/send_text/call_phone/hangup_phone/send_gift 区分;不据此断言服务器绝不会发送。
- 依据:03-协议-room路由.md;旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
75. play_voice
- 路由/通道:room(文档归类,线上未确认);方向:未确认(文档推测为下行);状态:X;新 Rpc 常量:有。
- 用途:与
send_voice成对,疑为语音播放推送。 - 请求:未发现同名发送链。
- 响应/推送:未定义,不能套用其它 rpc 字段。
- 注意:常量存在,旧 Net 无同名接收器。与实际已实现的 send_voice/send_text/call_phone/hangup_phone/send_gift 区分;不据此断言服务器绝不会发送。
- 依据:03-协议-room路由.md;旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
76. other_send_gift
- 路由/通道:room(文档归类,线上未确认);方向:未确认(文档推测为下行);状态:X;新 Rpc 常量:有。
- 用途:与
send_gift成对,疑为他人送礼推送。 - 请求:未发现同名发送链。
- 响应/推送:未定义,不能套用其它 rpc 字段。
- 注意:常量存在,旧 Net 无同名接收器。与实际已实现的 send_voice/send_text/call_phone/hangup_phone/send_gift 区分;不据此断言服务器绝不会发送。
- 依据:03-协议-room路由.md;旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
77. other_callphone
- 路由/通道:room(文档归类,线上未确认);方向:未确认(文档推测为下行);状态:X;新 Rpc 常量:有。
- 用途:与
call_phone成对,疑为他人拨打电话推送。 - 请求:未发现同名发送链。
- 响应/推送:未定义,不能套用其它 rpc 字段。
- 注意:常量存在,旧 Net 无同名接收器。与实际已实现的 send_voice/send_text/call_phone/hangup_phone/send_gift 区分;不据此断言服务器绝不会发送。
- 依据:03-协议-room路由.md;旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
78. other_hangup
- 路由/通道:room(文档归类,线上未确认);方向:未确认(文档推测为下行);状态:X;新 Rpc 常量:有。
- 用途:与
hangup_phone成对,疑为他人挂断电话推送。 - 请求:未发现同名发送链。
- 响应/推送:未定义,不能套用其它 rpc 字段。
- 注意:常量存在,旧 Net 无同名接收器。与实际已实现的 send_voice/send_text/call_phone/hangup_phone/send_gift 区分;不据此断言服务器绝不会发送。
- 依据:03-协议-room路由.md;旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
大厅 · 资产更新与系统推送(4)
79. update_bean
- 路由/通道:上行 agent;下行按 agent 归档(实际推送路由待逐项抓包);方向:C→S + S→C;状态:N;新 Rpc 常量:有。
- 用途:豆豆变化(本人或房内座位)
- 请求:原生 yPaytype / WVJB yPaytype 回调直接发送 agentid、playerid、change:num、type:9;这是资产写入路径,不属于只读查询。
- 响应/推送:bean、change/seat/type(按场景可选)、text;不同分支见原处理器。
- 注意:02 章“无对应主动请求”与当前 05_Func.js 不符。存在发送代码不代表支付来源可信性、服务端行为或新框架已经验收。
- 直接上行来源:原生 yPaytype、WVJB yPaytype。
- 依据:02-协议-agent路由.md;旧函数:update_bean。
80. update_roomcard
- 路由/通道:上行 agent;下行按 agent 归档(实际推送路由待逐项抓包);方向:C→S + S→C;状态:N;新 Rpc 常量:有。
- 用途:房卡变化
- 请求:原生 yPaytype / WVJB yPaytype 回调直接发送 agentid、playerid、change:num、type:9;这是资产写入路径,不属于只读查询。
- 响应/推送:roomcard、text(可选);change 分支条件见原处理器。
- 注意:02 章“无对应主动请求”与当前 05_Func.js 不符。存在发送代码不代表支付来源可信性、服务端行为或新框架已经验收。
- 直接上行来源:原生 yPaytype、WVJB yPaytype。
- 依据:02-协议-agent路由.md;旧函数:update_roomcard。
81. kick_offline
- 路由/通道:agent(协议归档;实际推送路由待逐项抓包);方向:S→C;状态:N;新 Rpc 常量:有。
- 用途:被踢下线
- 请求:无对应主动请求。
- 响应/推送:fromOther、gameid(可选);旧流程同时上报 submit_error。
- 注意:仅有旧处理器不能证明新 Runtime 接入或真实服务已覆盖。
- 依据:02-协议-agent路由.md;旧函数:kick_offline。
82. show_message
- 路由/通道:agent(协议归档;实际推送路由待逐项抓包);方向:S→C;状态:N;新 Rpc 常量:无。
- 用途:通用提示
- 请求:无对应主动请求。
- 响应/推送:msg、time。
- 注意:仅有旧处理器不能证明新 Runtime 接入或真实服务已覆盖。
- 依据:02-协议-agent路由.md;旧函数:show_message。
房间 · 服务器切换(room 侧)(1)
83. connect_roomserver
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 切到房间服;状态:R;新 Rpc 常量:有。
- 用途:从大厅服切换到房间服务器。
- 请求:由
Send_connect_roomserver发起(走 room 路由)。 - 响应/推送:
data.roomserver(新房间服地址)。处理:置GameData.ConnectType=true、GameData.ConnectRpc=connect_roomserver、GameData.Server=data.roomserver,关闭当前连接并用新地址重连。 - 依据:03-协议-room路由.md;旧函数:Send_connect_roomserver、connect_roomserver。
子游戏 · 框架保留名称(2)
84. over_game
- 路由/通道:由具体子游戏契约确定;方向:文档描述 S→C;实际由子游戏确认;状态:X;新 Rpc 常量:有。
- 用途:结算广播保留名;具体载荷由子游戏定义。
- 请求:模板未定义。
- 响应/推送:模板未定义。
- 注意:Game_Surface_3 的 Game_Modify 为模板,不能据名字推导具体子游戏协议。
- 依据:05-游戏内协议与桥接.md;旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
85. agentserver_game
- 路由/通道:由具体子游戏契约确定;方向:未定义;状态:X;新 Rpc 常量:有。
- 用途:对局数据经大厅服中转的保留名。
- 请求:模板未定义。
- 响应/推送:模板未定义。
- 注意:Game_Surface_3 的 Game_Modify 为模板,不能据名字推导具体子游戏协议。
- 依据:05-游戏内协议与桥接.md;旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
外部桥接 · 非网络 RPC(1)
86. joinRoom
- 路由/通道:H5/小程序本地桥接;方向:外部入口→前端确认流程;状态:X;新 Rpc 常量:有。
- 用途:唤起进房确认;不是直接向服务器发送 joinRoom。
- 请求:{rpc:"joinRoom",data:{roomcode}};H5 来自 URL gameData,小程序来自缓存 openminigamedata。
- 响应/推送:确认后走 self_join_room;不产生 joinRoom 网络回包。
- 注意:h5RpcList 唯一名称;旧小程序 checkType=8 与白名单删除撞号,不能沿用。WVJB handler 名不计为服务器 RPC。
- 依据:05-游戏内协议与桥接.md;旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
覆盖核对方法
- 逐一取 02_Const.js 的 RpcList 字符串赋值去重;核对 09_Net.js 中 RpcList 引用、Net 命名函数以及硬编码 rpc;扫描全模板的直接 _SendData 调用与 rpc 赋值(包含 05_Func.js 支付桥接),补入 h5RpcList。
- 与 02/03 章标题、02 章末尾推送表以及 05 章保留/桥接名称取并集;按实际名称一条一项,跨章节引用不重复计数。
- 结果:82 个旧常量名称全部命中;补充 4 个名称后 86 条,无遗漏或重复;11 个现代严格分发名称全部命中。
- 新框架状态依据 platform/runtime.ts、protocol/platform-handlers.ts、protocol/first-slice-routes.ts;旧 protocol/routes.ts 大常量表仅用于“名称存在”对照。
- 本轮没有发送网络请求、触发 Cocos 编辑器操作或运行资源生成器;这份静态索引不新增真实验收结论。