其他分享
首页 > 其他分享> > MQTT libary之发布和订阅

MQTT libary之发布和订阅

作者:互联网

1.之前的文章已经介绍mqtt server的安装和使用,本篇文章介绍mqtt的基本功能和用法

 接下来会进行介绍

2.首先要弄清楚Qos

QoS 级别越高,流程越复杂,系统资源消耗越大。应用程序可以根据自己的网络场景和业务需求,选择合适的 QoS 级别。

以下情况下可以选择 QoS 0

以下情况下可以选择 QoS 1

以下情况下可以选择 QoS 2

 3.Mqtt消息发布订阅模型

Qos 0:

Qos 1:

 

 

Qos2

 4.Mqtt Libary的使用:

    初始化:

private static MqttClient client;

client= new MqttClient("127.0.0.1", 1883, false, null, MqttSslProtocols.None);

            client.Connect("test");

            client.ProtocolVersion = MqttProtocolVersion.Version_3_1_1;

            client.MqttMsgPublished += Client_MqttMsgPublished;

            client.MqttMsgPublishReceived += Client_MqttMsgPublishReceived;

5,如果需要看到,发送的消息,先订阅需要发送的topic

 client.Subscribe(new string[] { textBox4.Text }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE });

6.发送代码如下:

if (!string.IsNullOrEmpty(topic.Text))

                client.Publish(topic.Text, System.Text.Encoding.UTF8.GetBytes( textBox2.Text));

7.运行起来,先点击订阅

注意: 发送和接受的topic要符合一定的规则才能接受

1.完全一致,点击发送就可以收到消息

2.订阅topic :Test/#,表示,Test下所有子的Topic均可以收到,这用mqtt的这个特性,可以将物联网进行有效的分类和区分,这样对于服务器的loading和运维均有较大的改善

 

 3.1个人发送消息,多人同时收到

3.1个人发送消息,多人轮流接受,使用Topic前增加$queue

 

消息,2个客户端轮流接收,没有重复

 

以上是mqtt的基本用法。

相关源代码已经上传

 

 

标签:订阅,QoS,Text,发送,topic,MQTT,client,消息,libary
来源: https://blog.csdn.net/qq_20048517/article/details/121450958