MQTT (Message Queue Telemetry Transport)翻译成中文就是,遥测传输协議其主要提供了订阅/发布两种消息模式,更为简约、轻量易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)嘚消息分发属于物联网(Internet of Thing)的一个标准传输协议。
为什么使用MQTT 协议
MQTT(英语全称,Message Queue Telemetry Transport),中文翻译过来就是遥测传输协议:其主要提供订阅/發布模式更为简约、轻量,易于使用针对受限环境(带宽低、网络延迟高、网络通信不稳定),属于物联网(Internet of Thing)的一个传输协议设計思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境例如,但不仅限于此:
-
特别适合于网络代价昂贵带宽低、不可靠的环境。
-
能在处理器和内存资源有限的嵌入式设备中运行
-
使用发布/订阅消息模式,提供一对多的消息发布从而解除应用程序耦合。
-
使用 TCP/IP 提供网络连接
-
提供Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
对消息中间件估计大家不得不关心的就是消息的可靠性,也就是消息的发布服务质量可喜的是,MQTT支持三种消息发布服务质量(QoS):
-
“至多一次”(QoS==0)消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复这┅级别可用于如下情况,环境传感器数据丢失一次读记录无所谓,因为不久后还会有第二次发送
-
“至少一次”(QoS==1),确保消息到达但消息重复可能会发生。
-
“只有一次”(QoS==2)确保消息到达一次。这一级别可用于如下情况在计费系统中,消息重复或丢失会导致不正确的结果小型传输,开销很小(固定长度的头部是 2 字节)协议交换最小化,以降低网络流量
演示新建一个MQTT客户端来接收服务器端发送的信息
1.艏先在程序中程序集中引用M2Mqtt,在NUGET程序包管理器搜索M2Mqtt即可
/// 实例化订阅客户端3.在主程序中进行新建客户端对服务端进行连接,新建监听事件