Exemple #1
0
        private void OnUpdate()
        {
            if (m_ClientNetwork != null)
            {
                ClientNetworkStatus curStatus = m_ClientNetwork.Status;
                if (curStatus != m_ClientStatus)
                {
                    m_ClientStatus = curStatus;

                    if (m_ClientStatus == ClientNetworkStatus.Disconnected)
                    {
                        ShowNotification(new GUIContent("Disconnected"));
                        m_ClientNetwork = null;
                    }
                    else if (m_ClientStatus == ClientNetworkStatus.Connecting)
                    {
                        ShowNotification(new GUIContent("Connecting..."));
                    }
                    else if (m_ClientStatus == ClientNetworkStatus.Connected)
                    {
                        ShowNotification(new GUIContent("Connected"));
                    }
                    else if (m_ClientStatus == ClientNetworkStatus.Disconnecting)
                    {
                        ShowNotification(new GUIContent("Disconnecting..."));
                    }

                    Repaint();
                }
            }
        }
Exemple #2
0
        public void DoUpdate(float deltaTime, float unscaleDeltaTime)
        {
            if (m_ClientSocket == null)
            {
                return;
            }
            ClientNetworkStatus curStatus = Status;

            if (m_PreStatus != curStatus)
            {
                if (curStatus == ClientNetworkStatus.Connecting)
                {
                    OnConnectingCallback?.Invoke();
                }
                else if (curStatus == ClientNetworkStatus.Connected)
                {
                    OnConnectedCallback?.Invoke();
                }
                else if (curStatus == ClientNetworkStatus.Disconnecting)
                {
                    OnDisconnectingCallback?.Invoke();
                }
                else if (curStatus == ClientNetworkStatus.Disconnected)
                {
                    OnDisconnectedCallback?.Invoke();
                }

                m_PreStatus = curStatus;
            }

            if (curStatus == ClientNetworkStatus.Connected)
            {
                lock (m_MessageLocker)
                {
                    foreach (var bytes in m_Messages)
                    {
                        int id = BitConverter.ToInt32(bytes, 0);
                        if (m_MessagHandlerDic.TryGetValue(id, out var callback))
                        {
                            byte[] contentBytes = new byte[0];
                            if (bytes.Length > sizeof(int))
                            {
                                contentBytes = new byte[bytes.Length - sizeof(int)];
                                Array.Copy(bytes, sizeof(int), contentBytes, 0, contentBytes.Length);
                            }
                            callback(contentBytes);
                        }
                        else
                        {
                            NetLogger.LogWarning(NetUtil.CLIENT_LOG_TAG, $"the handler of  id({id}) is not found");
                        }
                    }

                    m_Messages.Clear();
                }
            }
        }
Exemple #3
0
 private void Disconnect()
 {
     if (m_ClientNetwork != null)
     {
         m_ClientNetwork.Disconnect();
         m_ClientNetwork = null;
     }
     m_ClientStatus = ClientNetworkStatus.None;
 }
Exemple #4
0
 public bool Disconnect()
 {
     if (m_ClientSocket != null && (Status == ClientNetworkStatus.Connecting || Status == ClientNetworkStatus.Connected))
     {
         Status = ClientNetworkStatus.Disconnecting;
         m_ClientSocket.Disconnect();
         return(true);
     }
     return(false);
 }
Exemple #5
0
        private void OnDisconnected(object sender, EventArgs eventArgs)
        {
            UpdateRunner.RemoveUpdate(this);

            Status = ClientNetworkStatus.Disconnected;
            m_ClientSocket.OnConnect    -= OnConnected;
            m_ClientSocket.OnReceive    -= OnReceived;
            m_ClientSocket.OnDisconnect -= OnDisconnected;

            m_ClientSocket = null;
        }
Exemple #6
0
        public bool Disconnect()
        {
            if (m_ClientSocket != null && (Status == ClientNetworkStatus.Connecting || Status == ClientNetworkStatus.Connected))
            {
                UpdateRunner.RemoveUpdate(this);

                Status = ClientNetworkStatus.Disconnecting;
                m_ClientSocket.Disconnect();
                return(true);
            }
            return(false);
        }
Exemple #7
0
        private void OnDisconnected(object sender, EventArgs eventArgs)
        {
            Status = ClientNetworkStatus.Disconnected;
            m_ClientSocket.OnConnect    -= OnConnected;
            m_ClientSocket.OnReceive    -= OnReceived;
            m_ClientSocket.OnDisconnect -= OnDisconnected;

            lock (m_MessageLocker)
            {
                m_Messages.Clear();
            }

            m_ClientSocket = null;
        }
Exemple #8
0
        public bool Connect(string ipString, int port)
        {
            if (m_ClientSocket != null)
            {
                NetLogger.LogError(NetUtil.CLIENT_LOG_TAG, "The socket has been created");
                return(false);
            }

            m_ClientSocket               = new TcpClientSocket();
            m_ClientSocket.OnConnect    += OnConnected;
            m_ClientSocket.OnReceive    += OnReceived;
            m_ClientSocket.OnDisconnect += OnDisconnected;

            Status = ClientNetworkStatus.Connecting;

            m_ClientSocket.Connect(IPAddress.Parse(ipString), port);

            return(true);
        }
Exemple #9
0
        public bool Connect(string ipString, int port)
        {
            if (m_ClientSocket != null)
            {
                return(false);
            }

            m_ClientSocket               = new TcpClientSocket();
            m_ClientSocket.OnConnect    += OnConnected;
            m_ClientSocket.OnReceive    += OnReceived;
            m_ClientSocket.OnDisconnect += OnDisconnected;

            Status = ClientNetworkStatus.Connecting;

            m_ClientSocket.Connect(IPAddress.Parse(ipString), port);

            UpdateRunner.AddUpdate(this);

            return(true);
        }
Exemple #10
0
 private void OnConnected(object sender, EventArgs eventArgs)
 {
     Status = ClientNetworkStatus.Connected;
 }