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.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之发布和订阅之开发秘籍相关推荐
- mqtt session保持 订阅消息_MQTT系列 | MQTT消息的发布和订阅
1. MQTT的发布 MQTT发布中最重要的是PUBLISH数据包,PUBLISH数据包是用于sender和receiver之间传输消息数据的.当Publisher要向某个Topic发布一条消息的时候 ...
- 用MQTT.fx检查发布和订阅的mqtt消息
简介 使用方法 简介 MQTT.fx是一个简单的测试mqtt通信的软件,支持订阅消息.发布消息.记录日志,有美观的图形化操作界面. 实际上MQTT.fx并不是一个抓包工具,它也是通过一对账户名和密码连 ...
- Linux编程MQTT实现主题发布订阅
[物联网阿里云平台开发项目实战|附课件资料]智能硬件开发-数据上云,零基础入门 4G模块连接阿里云教程 MQTT通信协议(mosquitto)在Linux上的环境构建与测试 MQTT通信协议(mosq ...
- 面向.NET开发人员的Dapr——发布和订阅
目录: 面向.NET开发人员的Dapr--前言 面向.NET开发人员的Dapr--分布式世界 面向.NET开发人员的Dapr--俯瞰Dapr 面向.NET开发人员的Dapr--入门 面向.NET开发人 ...
- [Java]SpringBoot2整合mqtt服务器EMQ实现消息订阅发布入库(二)
又到了显摆分享技术的时候了 没有看过上一篇文章的可以先看一下,这篇是在上一篇基础上接着添加功能 SpringBoot2整合mqtt服务器EMQ实现消息订阅发布入库(一) 这篇文章的流程为: 1.Spr ...
- websocket连接mqtt实现发布及订阅主题
2019独角兽企业重金招聘Python工程师标准>>> 环境:linux(ubuntu.Centos7),websocket,mosquitto-1.4.10,libwebsocke ...
- MQTT协议之发布订阅
女主宣言 在之前的文章中,我们介绍了MQTT如何创建客户端与服务端,接下来就是如何进行消息的传递,本篇文章将进一步介绍MQTT的发布和订阅细节. PS:丰富的一线技术.多元化的表现形式,尽在" ...
- mqtt server python_使用python实现mqtt的发布和订阅
需要安装的python库 使用python编写程序进行测试MQTT的发布和订阅功能.首先要安装:pip install paho-mqtt 测试发布(pub) 我的MQTT部署在阿里云的服务器上面,所 ...
- 【MQTT基础篇(五)】发布、订阅和取消订阅
文章目录 发布.订阅和取消订阅 1 PUBLISH – 发布消息 1.1 topicName – 主题名 1.2 QoS – 服务质量等级 1.3 packetId – 报文标识符 1.4 retai ...
最新文章
- ubuntu10.0.4使用再生龙还原后在启动时不能正常启动
- 「消息队列」看过来!
- connection could not be established with host smtp.exmail.qq.com
- 计算机网络教室课程安排表,关于计算机教学计划汇总六篇
- [云炬创业管理笔记]第二章成为创业者讨论2
- 29 Python - 字符与编码
- 【IDEA】idea es 报错 Cause: invalid type code: 2D
- nginx 过滤post报文 防火墙_十八般武艺之Nginx踩坑总结
- nodejs应用转换png,jpg,gif为webp图片格式
- 升级dedecms5.5后,出现提示保存目录数据时失败,请检查你的输入资料是否存在问题...
- Akka创建第一个Actor《nine》译
- SaltStack 介绍和安装
- [2019杭电多校第十场][hdu6701]Make Rounddog Happy
- 计算机七年级下册课件ppt课件ppt,七年级音乐下册
- 超详细的UI设计软件教程与资料
- 几款不错的屏幕键盘软件~
- java分页查询代码实现
- 64qam带宽计算_滚降系数为0.5的64QAM信号,数据速率若为_____,则带宽为______。
- visualstudio 2017 工具栏隐藏解决办法
- CPC是什么意思和CPM、CPV有什么不同?
热门文章
- 华为交换机-关于等保“身份鉴别”的配置
- IList(T) 方法
- html简历怎么转换,教大家如何用HTML/CSS制作个人简历
- 史上最详细的C++函数指针
- 图片格式修改--png改为jpg
- html5手指滑动图片放大缩小,如何在移动端实现手势缩放(缩放图片,div等)
- 自动驾驶——标注工具(PySide)的开发笔记
- Jquery validate(submitHandler函数)验证通过发送Ajax
- java后台实现生成二维码并且上传的详细介绍
- CSS - 使用CSS3制作3D文本