private async Task StartAsync() { try { OnSubMessage?.Invoke($"正在连接{_clientConfig.Url}....", "重要"); ClientWebSocket = new ClientWebSocket(); var uri = new Uri(_clientConfig.Url); _cancellationToken = new CancellationToken(); await ClientWebSocket.ConnectAsync(uri, _cancellationToken); OnSubMessage?.Invoke("连接成功", "重要"); if (!_isListening) { StartListeningAsync(); } _isManualClose = false; OnConnectionSuccess?.Invoke(); _reconnectionNumber = 0; } catch (Exception exception) { await StopAsync(false); OnSubMessage?.Invoke("连接失败", "重要"); OnException?.Invoke(exception); OnConnectionFail?.Invoke(); } }
public void Connect(string address, int port) { var topology = new HostTopology(_connectionConfig, 1); _socketId = NetworkTransport.AddHost(topology); byte error; _connectionId = NetworkTransport.Connect(_socketId, address, port, 0, out error); NetworkError errorType = (NetworkError)error; if (errorType == NetworkError.Ok) { Debug.Log("Connected to server. Connection id: " + _connectionId); if (OnConnectedToServer != null) { OnConnectedToServer.Invoke(); } } else { Debug.LogError("Connection failed with errorType: " + _connectionId); if (OnConnectionFail != null) { OnConnectionFail.Invoke(errorType.ToString()); } } }