游戏重连流程
1.socket断开
2.socket链接上,数据服重连,请求最新数据
3.获取请求最新状态(askstate)
4.和当前状态比对
5.状态一致(静默重连)--请求重连战斗服数据
6.状态不一致(重新进入场景)
具体代码流程
--待写
socket断开之后会触发OnDisconnected部分
KBEngineLua.disconnected 打印 onDisconnected
KBEngineLua.startRelogin 打印start relogin
KBEngineLua.reLoginBaseapp
CS.KBEngine.NetworkInterface():connectTo 打印connect to 129.211....
然后走到C#执行下面回调
KBEngineLua.onReConnectTo_baseapp_callback 失败状态标为this.connectionStatus = ConnectionStatusDef.ReloginFailed
------失败部分-------
如果失败心跳包执行KBEngineLua.sendTick 状态标为ConnectionStatusDef.Waiting
等待下次心跳包执行再次重连方法KBEngineLua.sendTick
function Bundle:send() log("Bundle::send: networkInterface invalid!");
KBEngineLua.disconnected 打印 onDisconnected
同上
------失败部分-------
如果成功的话 log("KBEngine::createAccount_loginapp(): connect "..ip..":"..port.." is success!");
call method:initAccount 初始化账号 (疑问Network.callRemoteMethod("onInitAccount")在哪里执行的,猜测登录之后有数据服调用)