コード例 #1
0
        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();
            }
        }
コード例 #2
0
ファイル: Client.cs プロジェクト: hdecoster/mitto
        /// <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);
        }
コード例 #3
0
ファイル: WebsocketClient.cs プロジェクト: hdecoster/mitto
        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;
        }
コード例 #4
0
 protected override void OnNewClient(IClientParams clParams, ref bool allow)
 {
 }
コード例 #5
0
ファイル: NetCommon.cs プロジェクト: Reaper38/SdMessenger
 public ClientId(IClientParams clParams)
 {
     // XXX: improve id generation
     Value = lastId++;
 }
コード例 #6
0
 protected abstract void OnNewClient(IClientParams clParams, ref bool allow);