MQTT的认识和学习
⭐MQTT简介
MQTT协议(消息队列遥测传输协议):是一种基于发布/订阅模式的轻量级协议【构建于TCP/IP协议之上】。
应用领域: 遥感数据、汽车、智能家居、智慧城市、医疗医护、智能家居... ...
MQTT遵循原则:
-
-
- 精简,不添加可有可无的功能。
- 发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递。
- 允许用户动态创建主题,零运维成本。
- 把传输量降到最低以提高传输效率。
- 把低带宽、高延迟、不稳定的网络等因素考虑在内。
- 支持连续的会话控制。
- 理解客户端计算能力可能很低。
- 提供服务质量管理。
- 假设数据不可知,不强求传输数据的类型与格式,保持灵活性。
-
⭐ 实现方式
实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
(1)Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);
(2)payload,可以理解为消息的内容,是指订阅者具体要使用的内容。
⭐ MQTT的使用
MQTT环境的安装
sudo apt-get update sudo apt-get install mosquitto sudo apt-get install mosquitto-clients sudo service mosquitto status # 查看状态
验证发布/订阅消息
# ubuntu mosquitto_sub -h 192.168.0.2 -t "Mymqtt" -v
【-h】指定要连接的MQTT服务器
【-t】订阅主题,此处为mqtt
【-v】打印更多的调试信息 # windows mosquitto_pub -h 192.168.0.2 -t "Mymqtt" -m "I am Windows's MQTT"
【-h】指定要连接的MQTT服务器
【-t】向指定主题推送消息
【-m】指定消息内容
【注意】--项目实战
当订阅本地消息时: mosquitto_sub -t mqtt主题 -u 账户 -P 密码 -h 192.168.xx.xx 订阅远端(broker)消息时: mosquitto_sub -t mqtt主题/# -u 账户 -P 密码 -h 192.168.xx.xx -p 端口号 -d