MQTT是机器对机器(M2M)/物联网(IoT)连接协议。它被设计为一个极其轻量级的发布/订阅消息传输协议。对于需要较小代码占用空间和/或网络带宽非常宝贵的远程连接非常有用,是专为受限设备和低带宽、高延迟或不可靠的网络而设计。这些原则也使该协议成为新兴的“机器到机器”(M2M)或物联网(IoT)世界的连接设备,以及带宽和电池功率非常高的移动应用的理想选择。例如,它已被用于通过卫星链路与代理通信的传感器、与医疗服务提供者的拨号连接,以及一系列家庭自动化和小型设备场景。它也是移动应用的理想选择,因为它体积小,功耗低,数据包最小,并且可以有效地将信息分配给一个或多个接收器
特点
- 开放消息协议,简单易实现
- 发布订阅模式,一对多消息发布
- 基于TCP/IP网络连接,提供有序,无损,双向连接。
- 1字节固定报头,2字节心跳报文,最小化传输开销和协议交换,有效减少网络流量。
- 消息QoS支持,可靠传输保证
应用
MQTT协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等领域。
- 物联网M2M通信,物联网大数据采集
- Android消息推送,WEB消息推送
- 移动即时消息,例如Facebook Messenger
- 智能硬件、智能家具、智能电器
- 车联网通信,电动车站桩采集
- 智慧城市、远程医疗、远程教育
- 电力、石油与能源等行业市场
C#程序实现
MQTnet库
MQTTnet 是一个用于基于 MQTT 的通信的高性能 .NET 库。它提供 MQTT 客户机和 MQTT 服务器(代理),并支持版本 5 之前的 MQTT 协议。
常规
- 异步支持
- 客户端和服务器(但不是 UWP 服务器)的 TLS 支持
- 可扩展的通信通道(例如内存中、TCP、TCP+TLS、WS)
- 轻量级(只有MQTT的低级实现,没有开销)
- 性能优化(每秒处理约 150,000 条消息)*
- 跨所有受支持的 MQTT 协议版本的统一 API
- 访问内部跟踪消息
- 单元测试(约 636 次测试)
- 无外部依赖关系
在本地机器(英特尔 i7 8700K)上测试,MQTTnet 客户端和服务器使用 TCP 通道在同一进程中运行。用于验证的应用程序是此存储库的一部分,并存储在/Tests/MQTTnet.TestApp.NetCore中。</

本文详细介绍了MQTT协议,一种轻量级的物联网通信协议,适用于低带宽、高延迟或不可靠的网络环境。MQTTnet是一个高性能的.NET库,支持MQTT的客户端和服务器实现。文中提供了C#实现MQTT服务器和客户端的示例代码,展示了如何进行连接验证、消息处理等操作。


被折叠的 条评论
为什么被折叠?



