void Recv_Reconnect_Ans(System.IO.MemoryStream buffer) { string json = System.Text.Encoding.UTF8.GetString(buffer.GetBuffer(), (int)buffer.Position, (int)(buffer.Length - buffer.Position)); Msg_Reconnect_Ans ans = JsonUtility.FromJson <Msg_Reconnect_Ans>(json); if (0 != ans.error_code) { Error(new Gamnet.Exception(ans.error_code, "fail to reconnect")); return; } _session_key = ans.session_key; _session_token = ans.session_token; //RemoveSentPacket(ans.msg_seq); ReconnectEvent evt = new ReconnectEvent(this); _event_queue.Add(evt); // already locked }
public override void OnRecvMsg(System.IO.MemoryStream buffer) { string json = System.Text.Encoding.UTF8.GetString(buffer.GetBuffer(), (int)buffer.Position, (int)buffer.Length); Msg_Reconnect_Ans ans = JsonUtility.FromJson <Msg_Reconnect_Ans>(json); if (0 != ans.error_code) { Debug.LogError("[Session.ReconnectHandler.OnRecvMsg] reconnect fail(error_code:" + ans.error_code + ")"); session.Error(new Gamnet.Exception(ErrorCode.ReconnectFailError, "reconnect fail(error_code:" + ans.error_code + ")")); return; } Debug.Log("[Session.ReconnectHandler.OnRecvMsg] recv reconnect ans(session_key:" + session._session_key + ", session_token:" + session._session_token + ", disconnect_state:" + session._disconnectState.ToString() + ")"); //session._session_key = ans.session_key; //session._session_token = ans.session_token; SessionEvent evt = null; switch (session._disconnectState) { case DisconnectState.Pause: evt = new ResumeEvent(session); break; case DisconnectState.Handover: evt = new ReconnectEvent(session); break; case DisconnectState.Closed: break; } if (null != evt) { session._event_queue.Add(evt); // already locked } session._disconnectState = DisconnectState.Invalid; }