Ejemplo n.º 1
0
        private void Client_OnConnectionStateChanged(object sender)
        {
            VoipProviderConnectionState state;

            switch (Client.ConnectionState)
            {
            case ConnectionState.None:
                state = VoipProviderConnectionState.None;
                break;

            case ConnectionState.Connecting:
                state = VoipProviderConnectionState.Connecting;
                break;

            case ConnectionState.Open:
                state = VoipProviderConnectionState.Open;
                break;

            case ConnectionState.Closing:
                state = VoipProviderConnectionState.Closing;
                break;

            case ConnectionState.Closed:
                state = VoipProviderConnectionState.Closed;
                break;

            default:
                Console.WriteLine($"Asterisk: Received unknown connection state {Client.ConnectionState}");
                return;
            }
            ConnectionStateChanged?.Invoke(this, state);
        }
Ejemplo n.º 2
0
        //--------------------------------------------------------Set-, Get- Methods:---------------------------------------------------------\\
        #region --Set-, Get- Methods--
        protected void setState(ConnectionState state)
        {
            this.state = state;
            ConnectionStateChanged?.Invoke(this, this.state);
            switch (this.state)
            {
            case ConnectionState.DISCONNECTED:
                ConnectionDisconnected?.Invoke(this, new EventArgs());
                break;

            case ConnectionState.CONNECTING:
                ConnectionConnecting?.Invoke(this, new EventArgs());
                break;

            case ConnectionState.CONNECTED:
                ConnectionConnected?.Invoke(this, new EventArgs());
                break;

            case ConnectionState.DISCONNECTING:
                ConnectionDisconnecting?.Invoke(this, new EventArgs());
                break;

            case ConnectionState.ERROR:
                ConnectionError?.Invoke(this, new EventArgs());
                break;

            default:
                throw new InvalidOperationException("Invalid given state: " + state);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Called when the connection state of the LineaPro changes.
 /// </summary>
 /// <param name="state">The connection state.</param>
 public override void ConnectionState(ConnStates state)
 {
     if (ConnectionStateChanged != null)
     {
         ConnectionStateChanged.Invoke(this, new ConnectionStateChangedEventArgs(state));
     }
 }
 //little bugs
 private void OnConnectionStateChanged(object sender, ConnectionStateChangedEventArgs e)
 {
     if (!String.IsNullOrEmpty(e.Username))
     {
         ConnectionStateChanged?.Invoke(this, e);
     }
 }
Ejemplo n.º 5
0
 private void ClearAllDelegatesOfStateChangeEventHandler()
 {
     foreach (var handler in ConnectionStateChanged.GetInvocationList())
     {
         ConnectionStateChanged -= (EventHandler <ConnectionStateChange>)handler;
     }
 }
Ejemplo n.º 6
0
        public void Disconnect()
        {
            closeConnection = true;
            tcpClient.Close();

            ConnectionStateChanged?.Invoke(new EventArgs());
        }
Ejemplo n.º 7
0
 private void ActiveWindowChanged(object sender, ActiveWindowChangedEventArgs eventArgs)
 {
     IsConnected = _sessionProvider.IsConnected && eventArgs.Window != null;
     IsRunning  &= IsConnected;
     UpdateActiveConnection();
     ConnectionStateChanged?.Invoke(this, EventArgs.Empty);
 }
Ejemplo n.º 8
0
        private void mPlinkProcess_Exited(object sender, System.EventArgs e)
        {
            mPlinkProcess = new Process();
            mPlinkProcess.StartInfo.FileName               = StartupPath + @"\plink.exe";
            mPlinkProcess.StartInfo.UseShellExecute        = false;
            mPlinkProcess.StartInfo.RedirectStandardInput  = true;
            mPlinkProcess.StartInfo.RedirectStandardOutput = true;
            mPlinkProcess.StartInfo.RedirectStandardError  = true;
            mPlinkProcess.StartInfo.CreateNoWindow         = true;
            mPlinkProcess.EnableRaisingEvents              = true;

            mPlinkProcess.OutputDataReceived += new DataReceivedEventHandler(mPlinkProcess_ErrorOrOutputDataReceived);
            mPlinkProcess.ErrorDataReceived  += new DataReceivedEventHandler(mPlinkProcess_ErrorOrOutputDataReceived);
            mPlinkProcess.Exited             += new System.EventHandler(mPlinkProcess_Exited);

            CurStatus = ConnectionStatus.ConnectAborted;
            if (this.ConnectionStateChanged != null)
            {
                ConnectionStateChanged.BeginInvoke(OldStatus, CurStatus, null, null);
            }
            OutputDataReceived(0, LogLevel.Normal, "plink程序异常退出");

            if (mPlinkCf.ReConnAfterBreak)
            {
                ReConnDelayTimer.Enabled = true;
            }
        }
Ejemplo n.º 9
0
 private void InvokeConnectionStateChange()
 {
     if (ConnectionStateChanged != null)
     {
         ConnectionStateChanged.Invoke(this, new DroneConnectionStateChangedEventArgs(connected));
     }
 }
Ejemplo n.º 10
0
        public async Task Run(T host)
        {
            while (true)
            {
                var stream = CreateStream();
                await stream.WaitForConnectionAsync();

                _ = Task.Run(async() =>
                {
                    try
                    {
                        ConnectionStateChanged?.Invoke(this, true);
                        this.rpc = JsonRpc.Attach(stream, host);
                        await this.rpc.Completion;
                    }
                    catch (ObjectDisposedException)
                    {
                    }
                    catch (IOException)
                    {
                    }
                    catch (Exception ex)
                    {
                        Log.Exception(ex);
                    }
                    ConnectionStateChanged?.Invoke(this, false);
                    this.rpc.Dispose();
                    await stream.DisposeAsync();
                });
            }
        }
Ejemplo n.º 11
0
 public void HandleConnectionStateChanged(object sender, ConnectionStateChangedEventArgs e)
 {
     if (!String.IsNullOrEmpty(e.Client))
     {
         ConnectionStateChanged?.Invoke(this, e);
     }
 }
Ejemplo n.º 12
0
        private void SetConnectionState(bool isConnected)
        {
            _client.VerificationCode = null;
            _reqToken = null;

            if (IsConnected == isConnected)
            {
                return;
            }

            _client.AddDebugLog("Etrade: {0}", isConnected ? "connected" : "disconnected");

            if (isConnected)
            {
                Api.SetAuthenticator(AccessToken);
                _reconnecting = false;
            }
            else
            {
                Api.SetAuthenticator(null);
            }

            IsConnected = isConnected;
            ConnectionStateChanged.SafeInvoke();
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 引发连接状态改变事件
        /// </summary>
        internal void RaiseConnectionStateChangedEvent(ConnectionState connectionState)
        {
            _connectionState = connectionState;
            switch (_connectionState)
            {
            case ConnectionState.Disconnected:
                Log.Info("未连接");
                break;

            case ConnectionState.Disconnecting:
                Log.Info("正在断开");
                break;

            case ConnectionState.Connecting:
                Log.Info("正在连接");
                break;

            case ConnectionState.Connected:
                Log.Info("已连接, 且密码正确");
                break;

            case ConnectionState.AutoReconnecting:
                Log.Info("正在自动重连");
                break;

            case ConnectionState.PasswordVerifying:
                Log.Info("正在验证密码");
                break;

            case ConnectionState.PasswordIncorrect:
                Log.Info("密码错误");
                break;
            }
            ConnectionStateChanged?.Invoke(_connectionState);
        }
Ejemplo n.º 14
0
 private async Task HandleDisconnection(MqttClientDisconnectedEventArgs arg)
 {
     if (ConnectionStateChanged != null)
     {
         await ConnectionStateChanged.Invoke();
     }
 }
Ejemplo n.º 15
0
 public void Disconnect()
 {
     if (_isConnected)
     {
         _isConnected = false;
         ConnectionStateChanged?.Invoke(this, new ConnectionStateChangedArgs(_isConnected));
     }
 }
Ejemplo n.º 16
0
 private void InvokeConnectionStateChange(DroneNetworkConnectionState state)
 {
     if (ConnectionStateChanged != null)
     {
         String currentInterfaceName = currentWifiInterface != null ? currentWifiInterface.InterfaceName : "";
         ConnectionStateChanged.Invoke(this, new DroneNetworkConnectionStateChangedEventArgs(currentInterfaceName, state, currentPingRetries, maxPingRetries));
     }
 }
Ejemplo n.º 17
0
 private void ConnectionStateChangedInvokeCallback(IAsyncResult ar)
 {
     try
     {
         ConnectionStateChanged?.EndInvoke(ar);
     }
     catch { }
 }
Ejemplo n.º 18
0
 private void _websocket_OnFatality(string reason)
 {
     if (_websocket?.State != null)
     {
         ConnectionStateChanged?.Invoke(this, _websocket.State);
     }
     Error?.Invoke(this, new Exception(reason));
 }
Ejemplo n.º 19
0
 public void Handle(ConnectionStateChanged message)
 {
     if (message.ConnectedState == ConnectedState.Connected && _initialConnect)
     {
         return;
     }
     ConnectedState = message.ConnectedState;
 }
Ejemplo n.º 20
0
 internal void RemoveConnection(Guid connectionId)
 {
     if (_connections.TryRemove(connectionId, out WsConnection connection) && !string.IsNullOrEmpty(connection.Username))
     {
         ConnectionStateChanged?.Invoke(this, new ConnectionStateChangedEventArgs(connection.Username, false, DateTime.Now));
         ConnectionReceived?.Invoke(this, new ConnectionReceivedEventArgs(connection.Username, false, DateTime.Now));
     }
 }
 private void OnConnectionStateChanged(eConnectionState state)
 {
     ServerConnectionState = state;
     if (ConnectionStateChanged != null)
     {
         ConnectionStateChanged.Invoke(state);
     }
 }
Ejemplo n.º 22
0
 private void SessionDisconnected(object sender, EventArgs args)
 {
     lock (_syncObj) {
         IsConnected = _sessionProvider.IsConnected;
         IsRunning   = false;
     }
     ConnectionStateChanged?.Invoke(this, EventArgs.Empty);
 }
Ejemplo n.º 23
0
        internal void HandleMessage(Guid clientId, Container container)
        {
            if (!_connections.TryGetValue(clientId, out WsConnection connection))
            {
                return;
            }

            _connections.RefreshLifeClient(clientId);
            switch (container.Identifier)
            {
            case DispatchType.Login:
                if (((JObject)container.Payload).ToObject(typeof(LoginRequestContainer)) is LoginRequestContainer loginRequest)
                {
                    LoginResponseContainer loginResponse;
                    bool         isEnter = true;
                    DispatchType stage;

                    if (UserOnlineList.Contains(loginRequest.Content))
                    {
                        loginResponse = new LoginResponseContainer(
                            new Response(ResponseType.Failure, $"Client with name '{loginRequest.Content}' yet connect."),
                            null,
                            null,
                            null,
                            null);
                        connection.Send(loginResponse.GetContainer());
                        connection.Login = $"pseudo-{loginRequest.Content}";
                        stage            = DispatchType.Connection;
                    }
                    else
                    {
                        isEnter          = UserOfflineList.Contains(loginRequest.Content);
                        loginResponse    = new LoginResponseContainer(new Response(ResponseType.Ok, "Connected"), null, null, null, null);
                        connection.Login = loginRequest.Content;
                        stage            = DispatchType.Login;
                    }

                    var eventLogMessage = new EventLogMessage
                    {
                        IsSuccessfully = loginResponse.Content.Result == ResponseType.Ok == isEnter,
                        SenderName     = _name,
                        Text           = loginResponse.Content.Reason,
                        Time           = DateTime.Now,
                        Type           = stage
                    };

                    ConnectionStateChanged?.Invoke(this, new ConnectionStateChangedEventArgs(connection.Login, true, eventLogMessage));
                }

                break;

            case DispatchType.Message:
                MessageReceivedEventArgs message = MessageSorter.GetSortedMessage((JObject)container.Payload);
                MessageReceived?.Invoke(this, message);
                Send(MessageSorter.GetSortedMessage(message.Author, message.Message, InterfaceType.WebSocket, message.Agenda), message.Agenda);
                break;
            }
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Private ctor since we're cheezy and use a singleton.
        /// </summary>
        private NetworkStatus()
        {
            m_nListUtil = PlatformTypes.New <INetworkInfo>();

            m_nListUtil.ConnectionStateChanged += () =>
            {
                ConnectionStateChanged?.Invoke();
            };
        }
Ejemplo n.º 25
0
 private void BrokerStateChanged(object sender, BrokerStateChangedEventArgs eventArgs)
 {
     lock (_syncObj) {
         IsConnected = _sessionProvider.IsConnected;
         IsRunning  &= IsConnected;
     }
     UpdateActiveConnection();
     ConnectionStateChanged?.Invoke(this, EventArgs.Empty);
 }
Ejemplo n.º 26
0
 public async Task Disconnect()
 {
     await Task.Run(() =>
     {
         _closing = true;
         _socket.Disconnect(false);
         ConnectionStateChanged?.Invoke("Verbindung getrennt.", false);
     });
 }
Ejemplo n.º 27
0
 private void _device_ParameterChanged(object sender, Parameter parameter)
 {
     if (parameter == Parameter.State)
     {
         UpdateBatterySubscription();
         SetInfoText();
         ConnectionStateChanged?.Invoke(this, ConnectionState);
     }
 }
Ejemplo n.º 28
0
        internal void OnMessage(Guid clientId, MessageContainer container)
        {
            if (!_connections.TryGetValue(clientId, out WsConnection connection))
            {
                return;
            }

            switch (container.Identifier)
            {
            case nameof(ConnectionRequest):
                var connectionRequest  = ((JObject)container.Payload).ToObject(typeof(ConnectionRequest)) as ConnectionRequest;
                var connectionResponse = new ConnectionResponse
                {
                    Result    = ResultCode.Ok,
                    IsSuccess = true,
                };
                if (_connections.Values.Any(c => c.Username == connectionRequest.Username))
                {
                    string reason = $"User '{connectionRequest.Username}' is already logged in.";
                    connectionResponse.Result    = ResultCode.Failure;
                    connectionResponse.IsSuccess = false;
                    connectionResponse.Reason    = reason;
                    connection.Send(connectionResponse.GetContainer());
                    ErrorReceived?.Invoke(this, new ErrorReceivedEventArgs(reason, DateTime.Now));
                }
                else
                {
                    connection.Username            = connectionRequest.Username;
                    connectionResponse.ActiveUsers = _connections.Where(c => c.Value.Username != null).Select(u => u.Value.Username).ToList();
                    connection.Send(connectionResponse.GetContainer());
                    ConnectionStateChanged?.Invoke(this, new ConnectionStateChangedEventArgs(connection.Username, true, DateTime.Now));
                    ConnectionReceived?.Invoke(this, new ConnectionReceivedEventArgs(connection.Username, true, DateTime.Now));
                }
                break;

            case nameof(MessageRequest):
                var messageRequest = ((JObject)container.Payload).ToObject(typeof(MessageRequest)) as MessageRequest;
                MessageReceived?.Invoke(this, new MessageReceivedEventArgs(connection.Username, messageRequest.Target, messageRequest.Message, messageRequest.Groupname, DateTime.Now));
                break;

            case nameof(FiltrationRequest):
                var filtrationRequest = ((JObject)container.Payload).ToObject(typeof(FiltrationRequest)) as FiltrationRequest;
                FiltrationReceived?.Invoke(this, new FiltrationReceivedEventArgs(connection.Username, filtrationRequest.FirstDate, filtrationRequest.SecondDate, filtrationRequest.EventType));
                break;

            case nameof(CreateGroupRequest):
                var createGroupRequest = ((JObject)container.Payload).ToObject(typeof(CreateGroupRequest)) as CreateGroupRequest;
                createGroupRequest.UserList.Add(connection.Username);
                GroupCreated?.Invoke(this, new GroupCreatedEventArgs(createGroupRequest.Groupname, createGroupRequest.UserList));
                break;

            case nameof(LeaveGroupRequest):
                var leaveGroupRequest = ((JObject)container.Payload).ToObject(typeof(LeaveGroupRequest)) as LeaveGroupRequest;
                GroupLeaved?.Invoke(this, new GroupLeavedEventArgs(connection.Username, leaveGroupRequest.Groupname));
                break;
            }
        }
Ejemplo n.º 29
0
        protected virtual void OnConnectionStateChanged(ConnectionStateEventArgs e)
#endif

        {
            if (ConnectionStateChanged != null)
            {
                ConnectionStateChanged.Invoke(this, e);
            }
        }
Ejemplo n.º 30
0
        /// <summary>
        /// Private ctor since we're cheezy and use a singleton.
        /// </summary>
        private NetworkStatus()
        {
            m_nListUtil = new NetworkListUtil();

            m_nListUtil.ConnectionStateChanged += () =>
            {
                ConnectionStateChanged?.Invoke();
            };
        }