public void Join() { try { _is_running = verification() ? true : throw new Exception($"{Id} is not chat client."); while (IsClientConnected() && _is_running) { if (_stream.DataAvailable) { // десиарелизация сообщения BinaryFormatter formatter = new BinaryFormatter(); ClientMessage newMessage = (ClientMessage)formatter.Deserialize(_stream); ClientOutgoingMessageEvent?.Invoke(this, newMessage); } Thread.Sleep(10); } } catch (Exception ex) { _is_running = false; ClientErrorEvent?.Invoke(this, ex); } finally { _tcp_client?.Close(); ClientDisconnectEvent?.Invoke(this, null); } }
public override void OnClientDisconnect(NetworkConnection conn) { CallbackLog($"OnClientDisconnect({conn})"); base.OnClientDisconnect(conn); ClientDisconnectEvent?.Invoke(this, EventArgs.Empty); }
public override void OnLobbyClientDisconnect(NetworkConnection conn) { Debug.Log("LobbyManager : OnClientDisconnect"); if (ClientDisconnectEvent != null) { ClientDisconnectEvent.Invoke(); } }
public static void EventHandler(string script) { var e = new ClientDisconnectEvent(script); switch (script) { case BEFORE_DISCONNECT: BeforeClientDisconnect(e); break; case AFTER_DISCONNECT: AfterClientDisconnect(e); break; default: break; } }
private void Disconnect() { ClientDisconnectEventArgs e1 = new ClientDisconnectEventArgs(_socket.RemoteEndPoint.ToString()); ClientDisconnectEvent.OnClientDisconnect(e1); settings.ClientsConnected--; Logger.AddLog(new LogInfo("Client disconnected", _socket.RemoteEndPoint.ToString().Split(':')[0])); _socket.Disconnect(false); if (DisconnectHandle != null) { DisconnectHandle(this); } MaxConnections.Disconnect(_socket.RemoteEndPoint); }
private void OnClientDisconnectInternal(RawClient client, DisconnectEventArgs args) { bool ok = false; lock ( m_Clients ) { if (m_Clients.Contains(client)) { client.DisconnectEvent -= OnClientDisconnectInternal; client.ConnectEvent -= OnClientConnectInternal; m_Clients.Remove(client); ok = true; } } if (ok) { OnClientDisconnect(client, args); if (ClientDisconnectEvent != null) { ClientDisconnectEvent.Invoke(client, args); } } }
public void OnClientDisconnect(ClientDisconnectEvent e) { string instance = "AUTH"; if (e.DestinationPort == Server.Instance.WorldPort) { instance = "WORLD"; } Server.Instance.Logger.Log("A client disconnected from " + instance + ". address=" + e.SourceAddress + " port=" + e.SourcePort); if (e.DestinationPort == Server.Instance.WorldPort) { Session session = Server.Instance.SessionManager.GetSession(e.SourceAddress, e.SourcePort); if (session != null) { CharacterHelper.SaveCharacter(session); Server.Instance.SessionManager.DeleteSession(session); } } }
public static void InvokeClientDisconnectEvent(ClientDisconnectEventArgs args) { ClientDisconnectEvent?.Invoke(args); }
/// <summary> /// 触发服务器断开连接事件 /// </summary> private void OnServerDisconnected() { _tcpListener.Dispose(); ClientDisconnectEvent?.Invoke(this); }
/// <summary> /// 断开连接时触发 /// </summary> private void OnClientDisconnect() { Dispose(); ClientDisconnectEvent?.Invoke(this); }
/// <summary> /// 断开连接时触发 /// </summary> private void OnClientDisconnect() { ClientDisconnectEvent?.Invoke(this); }