private void _onConnectionClosed(Int32 _stream_id, PacketType _packet_type, DisconnectMsg _msg) { Utility.Log.Warning("与游戏服务器的连接已经断开"); //TODO 链接断开,自动重连 Entity.m_connect_in = 10f; FiniteStateMachine.ChangeStateTo(NetWorkStateType.Connecting); }
//private void _onHeartbeatReceived( Int32 _stream_id, PacketType _packet_type, Msg_gc_Heartbeat _msg ) //{ // Log.Debug( "收到心跳包回应!" ); // //// 抛弃 // //if( m_heartbeat_value != _msg.Value ) // //{ // // Log.Debug( "抛弃心跳包回执!" ); // // return; // //} // //m_heartbeat_value = 0; // m_timer_heartbeat_timeout.Stop(); // //_startSyncTime(); // _onStartHeartbeatTimer( 20000 ); //} private void _onHeartbeatTimeOut(Timer _timer, DateTime _date_time, long _interval) { Log.Info("心跳包超时! 连接断开"); // TODO 断开连接或者自动重连 Entity.Disconnect(); Entity.m_connect_in = 3f; FiniteStateMachine.ChangeStateTo(NetWorkStateType.Connecting); }
private void _onLoginFail(String _tip, params System.Object[] _args) { Log.Info("GameSrv 连接出错 自动重连!:{0}", _tip); m_time_out.Stop(); Entity.m_connect_in = 10f; FiniteStateMachine.ChangeStateTo(NetWorkStateType.Connecting); //TODO 登录游戏服报错处理 }
public override void Update(float _dt) { m_timer -= _dt; if (!(m_timer < 0)) { Int32 tmp = (Int32)m_timer; if (m_last_show != tmp && tmp != 0) { Log.Debug("将在{0}s后开始连接!", tmp); } m_last_show = tmp; return; } Utility.Log.Info("开始尝试重新连接服务器"); FiniteStateMachine.ChangeStateTo(NetWorkStateType.ConnectingToGameSrv); }
private void _onGameSrvConnected(Int32 _stream_id, PacketType _packet_type, ConnectMsg _msg) { Log.Info("GameSrv Connected!"); FiniteStateMachine.ChangeStateTo(NetWorkStateType.Connected); }