Example #1
0
        private static void Client_MessageReceived(object sender, MqttMessageReceivedEventArgs e)
        {
            //$SYS/brokers/+/clients/+/connected
            //$SYS/brokers/+/clients/+/disconnected
            //$SYS/brokers/+/clients/#
            var message = e.Message;
            var payload = Encoding.UTF8.GetString(message.Payload);

            if (new Regex(@"\$SYS/brokers/.+?/connected").Match(message.Topic).Success)
            {
                //{ "clientid":"mqtt.fx","username":"******","ipaddress":"127.0.0.1","clean_sess":true,"protocol":4,"connack":0,"ts":1540949660}

                var obj = JObject.Parse(payload);
                Console.WriteLine($"【Client Connected】 client_id:{obj.Value<string>("clientid")}, ipaddress:{obj.Value<string>("ipaddress")}");
            }
            else if (new Regex(@"\$SYS/brokers/.+?/disconnected").Match(message.Topic).Success)
            {
                //{"clientid":"mqtt.fx","username":"******","reason":"normal","ts":1540949658}

                var obj = JObject.Parse(payload);
                Console.WriteLine($"【Client Disconnected】 client_id:{obj.Value<string>("clientid")}");
            }
            else
            {
                Console.WriteLine(payload);
            }
        }
Example #2
0
 private void SubscriberWorker_MessageReceivedEvent(object sender, MqttMessageReceivedEventArgs <ContractorRegistModel> e)
 {
     if (HamburgerMenuControl.Dispatcher.Thread.ManagedThreadId != Thread.CurrentThread.ManagedThreadId)
     {
         HamburgerMenuControl.Dispatcher.Invoke(() => { (HamburgerMenuControl.Items[1] as BedgeMenuItem).Bedge++; });
     }
     else
     {
         (HamburgerMenuControl.Items[1] as BedgeMenuItem).Bedge++;
     }
 }
Example #3
0
        void qosManager_MessageReceived(object sender, MqttMessageReceivedEventArgs e)
        {
            if (e.Message == null)
            {
                //a null message means we have disconnected from the broker
                OnConnectionLost(new EventArgs());
                return;
            }

            switch (e.Message.MsgType)
            {
            case MessageType.CONNACK:
                var connack = ((MqttConnackMessage)e.Message);
                if (connack.Response == MqttConnectionResponse.Accepted)
                {
                    OnConnected(new EventArgs());
                }
                else
                {
                    OnConnectionLost(new MqttConnackEventArgs(connack.Response));
                }
                break;

            case MessageType.DISCONNECT:
                break;

            case MessageType.PINGREQ:
                manager.SendMessage(new MqttPingRespMessage());
                break;

            case MessageType.PUBACK:
                MqttPubackMessage puback = (MqttPubackMessage)e.Message;
                OnPublished(new CompleteArgs(puback.AckID));
                break;

            case MessageType.PUBCOMP:
                break;

            case MessageType.PUBLISH:
                MqttPublishMessage m = (MqttPublishMessage)e.Message;
                OnPublishArrived(m);
                break;

            case MessageType.PUBREC:
                break;

            case MessageType.PUBREL:
                MqttPubrelMessage pubrel = (MqttPubrelMessage)e.Message;
                OnPublished(new CompleteArgs(pubrel.AckID));
                break;

            case MessageType.SUBACK:
                MqttSubackMessage m1 = (MqttSubackMessage)e.Message;
                OnSubscribed(new CompleteArgs(m1.AckID));
                break;

            case MessageType.UNSUBACK:
                MqttUnsubackMessage m2 = (MqttUnsubackMessage)e.Message;
                OnUnsubscribed(new CompleteArgs(m2.AckID));
                break;

            case MessageType.PINGRESP:
                break;

            case MessageType.UNSUBSCRIBE:
            case MessageType.CONNECT:
            case MessageType.SUBSCRIBE:
            default:
                throw new Exception("Unsupported Message Type");
            }
        }
Example #4
0
 private void OnApplicationMessageReceived(object sender, MqttMessageReceivedEventArgs eventArgs)
 {
     ApplicationMessageReceived?.Invoke(this, eventArgs);
 }