Mqtt

来自Jack's Lab
2020年3月20日 (五) 17:10Comcat (讨论 | 贡献)的版本

跳转到: 导航, 搜索

1 Overview

MQTT是一个轻量的发布订阅模式消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计。

MQTT官网: http://mqtt.org

MQTT V3.1.1协议规范: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html


特点:

  • 开放消息协议,简单易实现
  • 发布订阅模式,一对多消息发布
  • 基于TCP/IP网络连接
  • 1字节固定报头,2字节心跳报文,报文结构紧凑
  • 消息QoS支持,可靠传输保证


应用:

MQTT协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等领域。

  • 物联网M2M通信,物联网大数据采集
  • Android消息推送,WEB消息推送
  • 移动即时消息,例如Facebook Messenger
  • 智能硬件、智能家具、智能电器
  • 车联网通信,电动车站桩采集
  • 智慧城市、远程医疗、远程教育
  • 电力、石油与能源等行业市场


2 Quickstart

MQTT 协议基于主题 (Topic) 进行消息路由

主题 (Topic) 类似 URL 路径,例如:

dev/gateway
dev2srv/DEV1202
srv2dev/DEV1203
  • 发布者通过主题 (Topic) 发送消息
  • 所有订阅 (Subscribe) 该主题的订阅者,都会收到消息


主题 (Topic) 通过 '/' 分割层级,支持 '+', '#' 通配符:

  '+': 表示通配一个层级,例如 a/+,匹配 a/x, a/y
  '#': 表示通配多个层级,例如a/#,匹配a/x, a/b/c/d

订阅者可以订阅含通配符主题,但发布者不允许向含通配符主题发布消息


3 CMD

#!/bin/bash

SPAM_DELAY=1;

while :
do
    mosquitto_pub -h hostname -t /test/topic -m 'test playload'
    sleep $SPAM_DELAY;
done





个人工具
名字空间

变换
操作
导航
工具箱