Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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;
                            }
                        });
                    }
                });
            }
        }