/// <inheritdoc /> public void ConnectTo(string serverAddress, int port) { if (client != null) { if (client.Host == serverAddress && client.Port == port) { Debug.Log($"Client already created: {client.Host}:{client.Port}"); return; } else { Debug.Log($"Disconnecting existing client {client.Host}:{client.Port}"); client.Stop(); client.Connected -= OnClientConnected; client.Disconnected -= OnClientDisconnected; client = null; } } Debug.LogFormat($"Connecting to {serverAddress}:{port}"); client = SocketerClient.CreateSender(SocketerClient.Protocol.TCP, serverAddress, port); client.Connected += OnClientConnected; client.Disconnected += OnClientDisconnected; client.Start(); }
private void OnDisable() { socketer.Stop(); socketer.Connected -= Socketer_Connected; socketer.Disconnected -= Socketer_Disconnected; socketer.Message -= Socketer_Message; socketer = null; }
protected void DoStopListening(ref SocketerClient listener) { if (listener != null) { Debug.Log("Stopped listening on port " + listener.Port); listener.Stop(); listener = null; } }
/// <summary> /// Disconnect all connections /// </summary> public void DisconnectAll() { // Make sure the client stops before attempting to disconnect // anything else. Otherwise, a race condition could cause the client // to automatically reconnect to the disconnected endpoints. if (client != null) { client.Stop(); client = null; } if (clientConnection != null) { clientConnection.Disconnect(); clientConnection = null; } foreach (SocketEndpoint endpoint in serverConnections.Values) { endpoint.Disconnect(); } serverConnections.Clear(); }
private void OnClientDisconnected(SocketerClient client, int sourceId, string hostAddress) { if (clientConnection != null) { Debug.Log("Client disconnected"); clientConnection.SetIncomingMessageQueue(null); oldConnections.Enqueue(clientConnection); clientConnection = null; } if (!AttemptReconnectWhenClient) { Debug.Log("Stopping subscriptions to disconnected client"); client.Stop(); client.Connected -= OnClientConnected; client.Disconnected -= OnClientDisconnected; if (this.client == client) { Debug.Log("Clearing client cache"); this.client = null; } } }