ClientConnectedState.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using UnityEngine;
  3. //客户端连接到服务器
  4. public class ClientConnectedState : ConnectionState
  5. {
  6. public override void Enter()
  7. {
  8. }
  9. public override void Exit()
  10. {
  11. }
  12. //服务端断开连接。切换到重连状态ClientReconnectingState
  13. public override void OnClientDisconnect(ulong clientId)
  14. {
  15. //MessageCenter.SendMessage(EventDefine.ConnectStatusEvent, ConnectStatus.Reconnecting);
  16. m_ConnectionManager.ChangeState(m_ConnectionManager.m_ClientReconnecting);
  17. }
  18. //用户主动断开。切换到OfflineState
  19. public override void OnUserRequestedShutdown()
  20. {
  21. MessageCenter.SendMessage(EventDefine.ConnectStatusEvent, ConnectStatus.UserRequestedDisconnect);
  22. m_ConnectionManager.ChangeState(m_ConnectionManager.m_Offline);
  23. }
  24. //服务端断开连接,并附加原因。切换到DisconnectingWithReasonState
  25. public override void OnDisconnectReasonReceived(ConnectStatus disconnectReason)
  26. {
  27. MessageCenter.SendMessage(EventDefine.ConnectStatusEvent, disconnectReason);
  28. //MessageCenter.SendMessage(EventDefine.ClientDisConnectionEvent, disconnectReason);
  29. m_ConnectionManager.ChangeState(m_ConnectionManager.m_DisconnectingWithReason);
  30. }
  31. }