예제 #1
0
        public Client(IWebSocketBehavior pClient, IKeepAliveMonitor pKeepAliveMonitor)
        {
            ID = Guid.NewGuid().ToString();
            //_objCancelationToken = _objCancelationSource.Token;

            _objClient                         = pClient;
            _objKeepAliveMonitor               = pKeepAliveMonitor;
            _objKeepAliveMonitor.TimeOut      += _objKeepAliveMonitor_TimeOut;
            _objKeepAliveMonitor.UnResponsive += _objKeepAliveMonitor_UnResponsive;

            _objClient.OnCloseReceived   += _objClient_OnCloseReceived;
            _objClient.OnErrorReceived   += _objClient_OnErrorReceived;
            _objClient.OnMessageReceived += _objClient_OnMessageReceived;

            _objKeepAliveMonitor.Start();

            Log.Info($"Client {ID} connected");
        }
예제 #2
0
 private void _objServer_ClientConnected(object sender, IWebSocketBehavior e)
 {
     _objClientConnected?.Invoke(new Client(e, new KeepAliveMonitor(_objParams.ConnectionTimeoutSeconds)));
 }