public void Reconnect(ClientType clientType, Action <ClientType> ReconnectSuccessCallback = null, Action <ClientType> ReconnectFailCallback = null) { if ((clientType == ClientType.Tcp || clientType == ClientType.Both) && (tcpClient != null && !tcpClient.IsConnected())) { ClearTcpClientMessage(); //TODO tcpSequence = 0; NetworkAlert.ResetWaitingMessages(serverType); tcpClient.Reconnect(ReconnectSuccessCallback, ReconnectFailCallback); } if ((clientType == ClientType.Udp || clientType == ClientType.Both) && (udpClient != null && !udpClient.IsConnected())) { ClearUdpClientMessage(); udpSequence = 0; udpClient.Reconnect(ReconnectSuccessCallback, ReconnectFailCallback); } }
public void Shutdown(Action ShutdownSuccessCallback = null) { OnShutdownSuccess = ShutdownSuccessCallback; notifySendThreadClosed = true; if (tcpClient != null) { tcpClient.Disconnect(() => { tcpClientClosed = true; if (udpClientClosed && sendingThreadClosed) { Loom.QueueOnMainThread(() => { NetworkAlert.ResetWaitingMessages(serverType); if (OnShutdownSuccess != null) { OnShutdownSuccess(); OnShutdownSuccess = null; } }); } }); } if (udpClient != null) { udpClient.Disconnect(() => { udpClientClosed = true; if (tcpClientClosed && sendingThreadClosed) { Loom.QueueOnMainThread(() => { NetworkAlert.ResetWaitingMessages(serverType); if (OnShutdownSuccess != null) { OnShutdownSuccess(); OnShutdownSuccess = null; } }); } }); } }