protected override void OnSessionStarted() { TimerManager.Instance.RepeatTask(() => { if (HasHandShaked) { DateTime pingTime = DateTime.Now; Send(PacketCreator.Ping()); TimerManager.Instance.RunOnceTask(() => { if ((pingTime - LastPongTime).Seconds > 10) { if (SocketSession.AppSession.Connected) { Close(); } } }, 15 * 1000); } }, 30 * 1000); base.OnSessionStarted(); }