コード例 #1
0
 private void MqttClient_Disconnected(object sender, MqttClientDisconnectedEventArgs e)
 {
     if (OnMqttConnectNotify != null)
     {
         OnMqttConnectNotify(sender, new MqttConnectNotifyEventArgs(false));
     }
 }
コード例 #2
0
        /// <summary>
        /// Esta función se ejecuta cuando se haya perdido la conexión con el broker MQTT generando la excepción
        ///
        /// </summary>
        /// <param name="eventArgs">
        /// La función entra con el mensaje pero no retorna nada, sólo realiza la subscripción
        /// </param>

        public async Task HandleDisconnectedAsync(MqttClientDisconnectedEventArgs eventArgs)
        {
            System.Console.WriteLine("Broker Desconectado");
            var clientSettings     = AppSettingsProvider.ClientSettings;
            var brokerHostSettings = AppSettingsProvider.BrokerHostSettings;

            System.Console.WriteLine("MQTT Broker :" + brokerHostSettings);
            var connected = mqttClient.IsConnected;
            var options   = new MqttClientOptionsBuilder()
                            .WithCredentials(clientSettings.UserName, clientSettings.Password)
                            .WithClientId(clientSettings.Id)
                            .WithTcpServer(brokerHostSettings.Host, brokerHostSettings.Port)
                            .WithCleanSession()
                            .Build();

            while (!connected)
            {
                try
                {
                    // Parametros para la configuracion del cliente MQTT.
                    // Establece conexion con el Broker
                    await mqttClient.ConnectAsync(options);
                } catch (System.Exception e) {
                    System.Console.WriteLine("No connection to MQTT Broker " + e.Message + e.StackTrace);
                }
                connected = mqttClient.IsConnected;
                await Task.Delay(30000);
            }
        }
コード例 #3
0
            /// <summary>
            /// client 与 server 断开
            /// </summary>
            /// <param name="e"></param>
            /// <returns></returns>
            private async Task Disconnected(MqttClientDisconnectedEventArgs e)
            {
                if (!Enabled)
                {
                    return;
                }

                try
                {
                    Console.WriteLine("Disconnected >>Disconnected Server");
                    await Task.Delay(TimeSpan.FromSeconds(2));

                    try
                    {
                        await mqttClient.ConnectAsync(options);
                    }
                    catch (Exception exp)
                    {
                        Console.WriteLine("Disconnected >>Exception " + exp.Message);
                    }
                }
                catch (Exception exp)
                {
                    Console.WriteLine(exp.Message);
                }
            }
コード例 #4
0
        /// <summary>
        /// 失去连接触发事件
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        private async Task Disconnected(MqttClientDisconnectedEventArgs e)
        {
            try
            {
                LogHelper.Log.Info("Disconnected >>Disconnected Server");
                mqttNetClient.IsConnectionSuccessful = false;
                IsFirstConnect = true;
                try
                {
                    if (!IsReConnect)
                    {//不重连
                        SendMessageUI("断开连接");
                        return;
                    }
                    //重连
                    SendMessageUI("连接失败");
                    await Task.Delay(TimeSpan.FromSeconds(3));

                    await mqttNetClient.MqttClientObj.ConnectAsync(mqttNetClient.MqttClientOptions);
                }
                catch (Exception exp)
                {
                    LogHelper.Log.Error("Disconnected >>Exception " + exp.Message);
                }
            }
            catch (Exception exp)
            {
                LogHelper.Log.Error(exp.Message);
            }
        }
コード例 #5
0
ファイル: Emitter.cs プロジェクト: BenDerPan/Uno.Emitter
 public Task HandleDisconnectedAsync(MqttClientDisconnectedEventArgs eventArgs)
 {
     return(Task.Run(() =>
     {
         Console.WriteLine("连接断开!!!!");
     }));
 }
コード例 #6
0
 public void mqttDisconnectedHandler(MqttClientDisconnectedEventArgs e)  // refactor
 {
     Console.WriteLine($"####### {exchange}Feed: MQTT server disconnected with reason {e.AuthenticateResult.ReasonString} {e.Exception.Message} #########");
     Thread.Sleep((int)1e4);
     Console.WriteLine("Retrying connection...");
     ReconnectMqtt();
 }
コード例 #7
0
        private void OnConnDisconnected(int connId, object sender, MqttClientDisconnectedEventArgs args)
        {
            if (_connection != null && _connection.Id != connId)
            {
                FizzLogger.W("Received disconnected event for old connection.");
            }

            FizzLogger.D("MQTT - OnDisconnected: " + args.ClientWasConnected.ToString());

            if (OnDisconnected != null)
            {
                if (args.Exception == null)
                {
                    OnDisconnected.Invoke(null);
                }
                else
                {
                    if (args.Exception.GetType() == typeof(MQTTnet.Adapter.MqttConnectingFailedException))
                    {
                        OnDisconnected.Invoke(ERROR_AUTH_FAILED);
                        if (_sessionRepo != null)
                        {
                            _sessionRepo.FetchToken(null);
                        }
                    }
                    else
                    {
                        OnDisconnected.Invoke(ERROR_CONNECTION_FAILED);
                    }
                }
            }
        }
コード例 #8
0
 private async Task HandleDisconnection(MqttClientDisconnectedEventArgs arg)
 {
     if (ConnectionStateChanged != null)
     {
         await ConnectionStateChanged.Invoke();
     }
 }
コード例 #9
0
ファイル: Mqtt.cs プロジェクト: tiaan-lg/MQTT-Test-App
 private static void OnDisconnected(MqttClientDisconnectedEventArgs x, string clientId)
 {
     Program.ConnectedClients--;
     Clients.TryRemove(clientId, out _);
     Console.WriteLine($"{DateTime.Now:g} - {clientId.PadRight(36)} Disconnected");
     Console.WriteLine($"{DateTime.Now:g} - {Clients.Count} Clients Connected");
 }
コード例 #10
0
        private void MqttClient_Disconnected(object sender, MqttClientDisconnectedEventArgs e)
        {
            ConnectEvent?.Invoke(false, e.Exception);
            if (e.Exception.InnerException is SocketException error)
            {
                switch (error.SocketErrorCode)
                {
                case SocketError.HostUnreachable:
                case SocketError.ConnectionAborted:
                case SocketError.NetworkUnreachable:
                case SocketError.ConnectionRefused:
                    Thread.Sleep(3000);
                    break;

                default:
                    Thread.Sleep(1000);
                    break;
                }
            }
            else
            {
                Thread.Sleep(125);
            }
            if (e.Exception is MqttConnectingFailedException code && code.ReturnCode == MqttConnectReturnCode.ConnectionRefusedBadUsernameOrPassword)
            {
                this.userId = 0;
            }
コード例 #11
0
ファイル: MqttHelper.cs プロジェクト: addd45/HussAPI
        private async void Mqtt_Disconnected(object sender, MqttClientDisconnectedEventArgs e)
        {
            _log.LogWarning("Warning: Mqtt disconnected");

            //Never was connected in the first place
            if (!e.ClientWasConnected)
            {
                throw e.Exception;
            }
            else
            {
                //TODO: Dynamic
                for (int i = 0; i < 3; i++)
                {
                    _log.LogInformation("Attempting to reconnect. Try #{0}", i);
                    await _mqttClient.ConnectAsync(_mqttOptions);

                    if (_mqttClient.IsConnected)
                    {
                        _log.LogInformation("MQTT reconnected!");
                        break;
                    }
                    else
                    {
                        Thread.Sleep(690);
                    }
                }
            }
        }
コード例 #12
0
 private Task OnDisconnected(MqttClientDisconnectedEventArgs e)
 {
     Console.WriteLine($"OnDisconnected [ClientWasConnected]:       {e.ClientWasConnected}");
     Console.WriteLine($"OnDisconnected [AuthenticateResult]:       {e.AuthenticateResult}");
     Console.WriteLine($"OnDisconnected [Exception]:       {e.Exception}");
     return(Task.CompletedTask);
 }
コード例 #13
0
 public void mqttDisconnectedHandler(MqttClientDisconnectedEventArgs e)
 {
     Console.WriteLine($"####### Disconnected from MQTT server with reason {e.Exception} #########");
     Thread.Sleep((int)1e4);
     Console.WriteLine("Retrying connection...");
     mqttClient.ConnectAsync(this.mqttClientOptions);
 }
コード例 #14
0
        private void mqttClient_Disconnected(object sender, MqttClientDisconnectedEventArgs e)
        {
            try
            {
                DisconnectMessage disconnectMsg = new DisconnectMessage();
                string            payload       = JsonConvert.SerializeObject(disconnectMsg);

                var message = new MqttApplicationMessageBuilder()
                              .WithTopic(_wastTopic)
                              .WithPayload(payload)
                              .WithAtLeastOnceQoS()
                              .WithRetainFlag(true)
                              .Build();

                _mqttClient.PublishAsync(message);

                if (Disconnected != null)
                {
                    Disconnected(this, new DisconnectedEventArgs(e.ClientWasConnected, e.Exception));
                }

                // stop heartbeat timer
                _heartbeatTimer.Enabled = false;
            }
            catch (Exception ex)
            {
                //_logger.Error( ex.ToString() );
            }
        }
コード例 #15
0
        private void OnDisconnected(object sender, MqttClientDisconnectedEventArgs args)
        {
            if (Disconnected != null)
            {
                _dispatcher.Post(() => Disconnected.Invoke(_id, sender, args));
            }

            if (_manualDisconnect)
            {
                _manualDisconnect = false;
                return;
            }
            if (!_retry)
            {
                return;
            }

            _dispatcher.Delay(RETRY_DELAY_MS, () =>
            {
                try
                {
                    if (_client != null)
                    {
                        _client.ConnectAsync(_options);
                    }
                }
                catch
                {
                    FizzLogger.E("Unable to reconnect to Fizz event service.");
                }
            });
        }
コード例 #16
0
ファイル: MainForm.cs プロジェクト: sunkejava/MqttDemo
 private void MqttClient_Disconnected(object sender, MqttClientDisconnectedEventArgs e)
 {
     Invoke((new Action(() =>
     {
         Status_Label.Text = $"状态:未连接!";
     })));
 }
コード例 #17
0
 public void mqttDisconnectedHandler(MqttClientDisconnectedEventArgs e)
 {
     Console.WriteLine($"####### Bitmex Disconnected from MQTT server with reason {e.Exception} #########");
     Thread.Sleep((int)1e4);
     Console.WriteLine("Retrying connection...");
     ReconnectMqtt();
 }
コード例 #18
0
        private async Task HandleDisconnected(MqttClientDisconnectedEventArgs ev)
        {
            Logger.LogWarning(ev.Exception, "Client disconnected: {WasConnected} {Exception}", ev.ClientWasConnected, ev.Exception?.Message);
            var delay = _jitterBackoff.Next();
            await Task.Delay(delay, ApplicationLifetime.ApplicationStopping).ConfigureAwait(false);

            await Connect(ApplicationLifetime.ApplicationStopping).ConfigureAwait(false);
        }
コード例 #19
0
ファイル: AbstractMqttClient.cs プロジェクト: sontx/logme
 public Task HandleDisconnectedAsync(MqttClientDisconnectedEventArgs eventArgs)
 {
     OnDisconnected();
     return(Task.Run(() =>
     {
         stopWaitEvent.Set();
     }));
 }
コード例 #20
0
 private void mqttDisconnected(object sender, MqttClientDisconnectedEventArgs e)
 {
     Invoke(new Action(() =>
     {
         Status.Text = "離/斷線 MQTT服務器!";
     }));
     mqttClientConnected = false;
 }
コード例 #21
0
 private void DisconnectHandler(MqttClientDisconnectedEventArgs arg)
 {
     if (_client.IsConnected)
     {
         _logger.LogWarning("client is connected ");
     }
     _logger.LogCritical("disconnected from broker ", arg);
 }
コード例 #22
0
        public async Task HandleDisconnectedAsync(MqttClientDisconnectedEventArgs e)
        {
            this.logger.LogInformation("lost connection to mqtt server");

            await Task.Delay(TimeSpan.FromSeconds(5));

            await this.ConnectAsync(CancellationToken.None);
        }
コード例 #23
0
 private static void Mqttmaganer_OnMqttClientDisconnected(object sender, MqttClientDisconnectedEventArgs e)
 {
     lock (_consoleLock)
     {
         PrintStatus();
     }
     UpdateTitle();
 }
コード例 #24
0
 /// <summary>
 /// 关闭事件
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 private Task OnMqttDisconnected(MqttClientDisconnectedEventArgs obj)
 {
     if (obj.ClientWasConnected)
     {
         notification.Show("断开连接...");
     }
     return(Task.CompletedTask);
 }
コード例 #25
0
 private void HandleMqttDisconnected(MqttClientDisconnectedEventArgs e)
 {
     using (var scope = _serviceScopeFactory.CreateScope())
     {
         var hub = scope.ServiceProvider.GetService <IHubContext <MqttHub> >();
         hub.Clients.All.SendAsync("Connected", e.ReasonCode.ToString());
     }
 }
コード例 #26
0
 /// <summary>
 /// 客户端与服务端断开连接
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private static void _client_Disconnected(object sender, MqttClientDisconnectedEventArgs e)
 {
     _myMqtt.IsConnected    = false;
     _myMqtt.IsDisConnected = true;
     PurVar.PurStatic.WriteToStatus("与服务端断开连接!5s后重连");
     Thread.Sleep(5000);
     InitClient(_myMqtt.ClientID, _myMqtt.ServerUri, _myMqtt.ServerPort);
 }
コード例 #27
0
        private void MqttServer_ClientDisconnected(object sender, MqttClientDisconnectedEventArgs e)
        {
            ConnectedMqttClient client = e.Client;

            mqttClients.Remove(client.ClientId);

            Invoke(new SetTextTb(SetMessageByClientMsg), client, true);
        }
コード例 #28
0
        private static void MqttServerOnClientDisconnected(object sender, MqttClientDisconnectedEventArgs e)
        {
#if MQTTNET3
            Console.WriteLine("Client disconnected: " + e.ClientId + ", Gracefull shutdown? " + e.DisconnectType);
#else
            Console.WriteLine("Client disconnected: " + e.ClientId + ", Gracefull shutdown? " + e.WasCleanDisconnect);
#endif
        }
コード例 #29
0
 /// <summary>
 /// 客户端断开连接
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void MqttServer_ClientDisconnected(object sender, MqttClientDisconnectedEventArgs e)
 {
     if (subClientIDs.Contains(e.ClientId))
     {
         subClientIDs.Remove(e.ClientId);
     }
     // log.Info(DateTime.Now + $"客户端[{e.ClientId}]已断开连接!还有" + subClientIDs.Count + "客户端在连接!");
 }
コード例 #30
0
 private void OnMqttClientDisConnected(MqttClientDisconnectedEventArgs obj)
 {
     if (IsShowInput)
     {
         Console.WriteLine($"{obj.ClientWasConnected}:{obj.Reason} DisConnected");
     }
     OnDisconnected?.Invoke(obj);
 }