public void ConnectAsync(IClientParams pParams) { try { if (_objCancelationSource != null) { _objCancelationSource.Dispose(); } _objCancelationSource = new CancellationTokenSource(); _objCancelationToken = _objCancelationSource.Token; _ = WebSocket.ConnectAsync( new Uri( string.Format( (pParams.Secure ? "wss" : "ws") + "://{0}:{1}/", pParams.HostName, pParams.Port ) ), _objCancelationToken ).ContinueWith((t) => { _ = Receive(); Connected?.Invoke(this, this); }); } catch (TaskCanceledException) { } catch (OperationCanceledException) { //ignore } catch (Exception ex) { Log.Info($"Error connecting client: {ex.Message}, closing connection..."); Disconnect(); } }
/// <summary> /// Establishes the connection to the server /// </summary> /// <param name="pParams"></param> public void ConnectAsync(IClientParams pParams) { // Data handling inside the client: // - Receiving data: deliver the information to the Queue to be processed // - Sending data: put the binary data on the connection Router = RouterFactory.Create(Connection); Connection.Connected += ObjClient_Connected; Connection.Disconnected += ObjClient_Disconnected; Connection.ConnectAsync(pParams); }
public void ConnectAsync(IClientParams pParams) { if (!(pParams is ClientParams objParams)) { Log.Error("Incorrect parameters for WebSocket client"); throw new Exception("Incorrect parameters for WebSocket client"); } Log.Info($"Connecting {ID} to {objParams.HostName}:{objParams.Port}"); _objWebSocketClient.ConnectionTimeoutSeconds = objParams.ConnectionTimeoutSeconds; _objKeepAliveMonitor.SetInterval(objParams.ConnectionTimeoutSeconds); _objWebSocketClient.OnOpen += Connection_OnOpen; _objWebSocketClient.OnClose += Connection_OnClose; _objWebSocketClient.OnError += Connection_OnError; _objWebSocketClient.OnMessage += Connection_OnMessage; _objWebSocketClient.ConnectAsync(objParams); _objKeepAliveMonitor.TimeOut += _objKeepAliveMonitor_TimeOut; _objKeepAliveMonitor.UnResponsive += _objKeepAliveMonitor_UnResponsive; }
protected override void OnNewClient(IClientParams clParams, ref bool allow) { }
public ClientId(IClientParams clParams) { // XXX: improve id generation Value = lastId++; }
protected abstract void OnNewClient(IClientParams clParams, ref bool allow);