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(); } } }
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(); } } }
private void Disconnect() { if (m_ClientNetwork != null) { m_ClientNetwork.Disconnect(); m_ClientNetwork = null; } m_ClientStatus = ClientNetworkStatus.None; }
public bool Disconnect() { if (m_ClientSocket != null && (Status == ClientNetworkStatus.Connecting || Status == ClientNetworkStatus.Connected)) { Status = ClientNetworkStatus.Disconnecting; m_ClientSocket.Disconnect(); return(true); } return(false); }
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; }
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); }
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; }
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); }
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); }
private void OnConnected(object sender, EventArgs eventArgs) { Status = ClientNetworkStatus.Connected; }