private void Connect() { if (socketClient != null && (socketClient.IsConnected || socketClient.IsConnecting)) { Disconnect(); socketClient = null; } switch (type) { case Type.Ssl: var sslContext = sslCertificateAsset.GetContext(); socketClient = new UnitySslClient(sslContext, serverIp, serverPort); break; case Type.Tcp: socketClient = new UnityTcpClient(serverIp, serverPort); break; case Type.Udp: socketClient = new UnityUdpClient(serverIp, serverPort); break; default: throw new ArgumentOutOfRangeException(); } buffer = new byte[socketClient.OptionReceiveBufferSize]; socketClient.OnConnectedEvent += OnConnected; socketClient.OnDisconnectedEvent += OnDisconnected; socketClient.OnErrorEvent += OnError; socketClient.ConnectAsync(); }
public void UpdateState(IUnitySocketClient socketClient) { UpdateStateInfoText(socketClient); bool connected = socketClient != null && socketClient.IsConnected; sendMessageButton.interactable = connected; disconnectButton.interactable = connected; sslConnectButton.interactable = !connected; tcpConnectButton.interactable = !connected; udpConnectButton.interactable = !connected; }
private void UpdateStateInfoText(IUnitySocketClient socketClient) { if (socketClient == null) { return; } var text = $"Server ip: {socketClient.Endpoint.Address}, Server port: {socketClient.Endpoint.Port}\n" + $"Connecting: {socketClient.IsConnecting}, IsConnected: {socketClient.IsConnected}\n "; stateInfoText.text = text; }