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.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的基本用法。

相关源代码已经上传

MQTT libary之发布和订阅之开发秘籍相关推荐

  1. mqtt session保持 订阅消息_MQTT系列 | MQTT消息的发布和订阅

    1. MQTT的发布 MQTT发布中最重要的是PUBLISH数据包,PUBLISH数据包是用于sender和receiver之间传输消息数据的.当Publisher要向某个Topic发布一条消息的时候 ...

  2. 用MQTT.fx检查发布和订阅的mqtt消息

    简介 使用方法 简介 MQTT.fx是一个简单的测试mqtt通信的软件,支持订阅消息.发布消息.记录日志,有美观的图形化操作界面. 实际上MQTT.fx并不是一个抓包工具,它也是通过一对账户名和密码连 ...

  3. Linux编程MQTT实现主题发布订阅

    [物联网阿里云平台开发项目实战|附课件资料]智能硬件开发-数据上云,零基础入门 4G模块连接阿里云教程 MQTT通信协议(mosquitto)在Linux上的环境构建与测试 MQTT通信协议(mosq ...

  4. 面向.NET开发人员的Dapr——发布和订阅

    目录: 面向.NET开发人员的Dapr--前言 面向.NET开发人员的Dapr--分布式世界 面向.NET开发人员的Dapr--俯瞰Dapr 面向.NET开发人员的Dapr--入门 面向.NET开发人 ...

  5. [Java]SpringBoot2整合mqtt服务器EMQ实现消息订阅发布入库(二)

    又到了显摆分享技术的时候了 没有看过上一篇文章的可以先看一下,这篇是在上一篇基础上接着添加功能 SpringBoot2整合mqtt服务器EMQ实现消息订阅发布入库(一) 这篇文章的流程为: 1.Spr ...

  6. websocket连接mqtt实现发布及订阅主题

    2019独角兽企业重金招聘Python工程师标准>>> 环境:linux(ubuntu.Centos7),websocket,mosquitto-1.4.10,libwebsocke ...

  7. MQTT协议之发布订阅

    女主宣言 在之前的文章中,我们介绍了MQTT如何创建客户端与服务端,接下来就是如何进行消息的传递,本篇文章将进一步介绍MQTT的发布和订阅细节. PS:丰富的一线技术.多元化的表现形式,尽在" ...

  8. mqtt server python_使用python实现mqtt的发布和订阅

    需要安装的python库 使用python编写程序进行测试MQTT的发布和订阅功能.首先要安装:pip install paho-mqtt 测试发布(pub) 我的MQTT部署在阿里云的服务器上面,所 ...

  9. 【MQTT基础篇(五)】发布、订阅和取消订阅

    文章目录 发布.订阅和取消订阅 1 PUBLISH – 发布消息 1.1 topicName – 主题名 1.2 QoS – 服务质量等级 1.3 packetId – 报文标识符 1.4 retai ...

最新文章

  1. ubuntu10.0.4使用再生龙还原后在启动时不能正常启动
  2. 「消息队列」看过来!
  3. connection could not be established with host smtp.exmail.qq.com
  4. 计算机网络教室课程安排表,关于计算机教学计划汇总六篇
  5. [云炬创业管理笔记]第二章成为创业者讨论2
  6. 29 Python - 字符与编码
  7. 【IDEA】idea es 报错 Cause: invalid type code: 2D
  8. nginx 过滤post报文 防火墙_十八般武艺之Nginx踩坑总结
  9. nodejs应用转换png,jpg,gif为webp图片格式
  10. 升级dedecms5.5后,出现提示保存目录数据时失败,请检查你的输入资料是否存在问题...
  11. Akka创建第一个Actor《nine》译
  12. SaltStack 介绍和安装
  13. [2019杭电多校第十场][hdu6701]Make Rounddog Happy
  14. 计算机七年级下册课件ppt课件ppt,七年级音乐下册
  15. 超详细的UI设计软件教程与资料
  16. 几款不错的屏幕键盘软件~
  17. java分页查询代码实现
  18. 64qam带宽计算_滚降系数为0.5的64QAM信号,数据速率若为_____,则带宽为______。
  19. visualstudio 2017 工具栏隐藏解决办法
  20. CPC是什么意思和CPM、CPV有什么不同?

热门文章

  1. 华为交换机-关于等保“身份鉴别”的配置
  2. IList(T) 方法
  3. html简历怎么转换,教大家如何用HTML/CSS制作个人简历
  4. 史上最详细的C++函数指针
  5. 图片格式修改--png改为jpg
  6. html5手指滑动图片放大缩小,如何在移动端实现手势缩放(缩放图片,div等)
  7. 自动驾驶——标注工具(PySide)的开发笔记
  8. Jquery validate(submitHandler函数)验证通过发送Ajax
  9. java后台实现生成二维码并且上传的详细介绍
  10. CSS - 使用CSS3制作3D文本