推荐一款稳定的基于C编写的MQTT Client开源库《cMQTT》
一 概述
MQTT协议目前在物联网技术中应用非常广泛,各种公有云的IOT平台通信基本上都是按照该协议来实现的,这里先简单的做个总结:
(1)MQTT协议框架及内容比较标准,可以认为是“物联网行业的Modbus协议”。
(2)不同厂家的MQTT 服务器或客户端在通信层面是完全一致的,只有业务数据不同而已。这也就意味着,如果知道client ID 、password、payload格式,
那么任何的MQTT client都可以连接到MQTT 服务器上。
(3)MQTT的模式是发布和订阅,发布既可以是客户端也可以是服务端,但是最终都是需要服务端broker进行转发。
关于MQTT协议的定义及应用场景,网上的资料非常多,下面举一个简单的应用案例系统框图来说明:
上图中,client1和client3 都“订阅”了Topic1,当client2向Topic1“发布”消息时,client1和client3都会收到client2 发送的消息。
二、名词解释
1、订阅 subscribe
客户端通过“订阅”某个topic,当这个topic有新的消息时,服务器会自动将消息转发给这个client。
2、主题 Topic
附加在应用消息上的一个标签,服务器broker就是根据topic名称,与订阅该topic的client进行关联,然后进行消息转发。
3、主题过滤器 Topic filter
订阅操作中包含的topic,可以是具体的topic name,也可以通过“通配符”实现订阅多个主题。
4、会话 session
从客户端向服务端发起MQTT连接请求开始,到连接中断,直到会话过期未知的消息手法序列称之为会话。