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); } }
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++; } }
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"); } }
private void OnApplicationMessageReceived(object sender, MqttMessageReceivedEventArgs eventArgs) { ApplicationMessageReceived?.Invoke(this, eventArgs); }