物联网-MQTT
■ MQTT 简介
Mosquitto官网
Mosquitto最新的源码
MQTT 入门介绍
MQTT协议3.1.1中文版
官方下载地址 //需要许可证密钥
MQTT.Fx 下载
链接: https://pan.baidu.com/s/1zkOHAyP_nURebtk7x6yXvw?pwd=rbq9
提取码: rbq9
链接:https://pan.baidu.com/s/1jwA7GUcT8h-rk_kt4CZq1A
提取码:1234
MQTT(Message Queuing Telemetry Transport)**消息队列遥测传输协议,**是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。
MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)
MQTT.fx的许可证密钥是一种用于授权用户使用全部功能的授权凭证。
用户在下载并安装MQTT.fx后,可以在“注册”或“许可”菜单中找到“许可证”选项。
用户需要购买或申请许可证密钥,以便能够使用MQTT.fx的高级功能和服务。
用户还可以在百度网盘上找到MQTT.fx的不同版本,其中1.7版本无需许可证。
■ 1、MQTT协议实现方式
实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,
MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。
其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
.
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
(1)Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);
(2)payload,可以理解为消息的内容,是指订阅者具体要使用的内容。
■ 2、MQTT客户端
一个使用MQTT协议的应用程序或者设备,它总是建立到服务器的网络连接。客户端可以:
(1)发布其他客户端可能会订阅的信息;
(2)订阅其它客户端发布的消息;
(3)退订或删除应用程序的消息;
(4)断开与服务器连接。
■ 3、MQTT服务器
MQTT服务器以称为"消息代理"(Broker),可以是一个应用程序或一台设备。它是位于消息发布者和订阅者之间,它可以:
(1)接受来自客户的网络连接;
(2)接受客户发布的应用信息;
(3)处理来自客户端的订阅和退订请求;
(4)向订阅的客户转发应用程序消息。
■ 4、MQTT协议中的订阅、主题、会话
一、订阅(Subscription)
订阅包含主题筛选器(Topic Filter)和最大服务质量(QoS)。订阅会与一个会话(Session)关联。一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。
二、会话(Session)
每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。会话存在于>一个网络之间,也可能在客户端和服务器之间跨越多个连续的网络连接。
三、主题名(Topic Name)
连接到一个应用程序消息的标签,该标签与服务器的订阅相匹配。服务器会将消息发送给订阅所匹配标签的每个客户端。
四、主题筛选器(Topic Filter)
一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题。
五、负载(Payload)
消息订阅者所具体接收的内容。
■ 5、MQTT协议数据包结构
在MQTT协议中,一个MQTT数据包由:固定头(Fixed header)、可变头(Variable header)、消息体(payload)三部分构成。MQTT数据包结构如下:
(1)固定头(Fixed header)。存在于所有MQTT数据包中,表示数据包类型及数据包的分组类标识。
(2)可变头(Variable header)。存在于部分MQTT数据包中,数据包类型决定了可变头是否存在及其具体内容。
(3)消息体(Payload)。存在于部分MQTT数据包中,表示客户端收到的具体内容。
■ MQTT.fx 界面介绍
连接设置
用户信息设置
SSL安全证书设置
网络代理设置
医嘱设置
■ MQTT.fx 界面介绍2
■ 1、MQTT.fx 连接服务器
下面是服务器地址
■ 2、MQTT.fx 发布测试 (Sublish)
先在服务器上订阅 在发布消息,服务器上才看的到
■ 3、MQTT.fx 订阅测试 (Subscribe)
在虚拟机中发布一个主题nihao,消息内容为helloworld
■ 服务器-mosquitto
■ 1、服务器启动 mosquitto
sudo apt install mosquitto-clients //安装客户端
sudo apt-get install mosquitto //安装服务器端
sudo systemctl status mosquitto //查看运行状态
//重启服务器程序
ps -aux | grep mosquitto //查看运行进程号
kill -9 进程号 //执行命令杀死进程:
mosquitto -v //启动代理服务:-v 详细模式——启用所有日志记录类型。
■ 2、服务器-订阅主题
订阅 nihao主题, 接受到如下信息
订阅主题:mosquitto_sub -v -t hello
-t 指定订阅的主题,主题为:hello
-v 详细模式 打印调试信息
■ 3、服务器-发布主题
服务器中发布一个主题nihao,消息韦helloworld
发布内容:mosquitto_pub -t hello -m world
-t 指定订阅的主题,主题为:hello
-m 指定发布的消息的内容
■ Ubuntu搭建mosquitto (下载源码编译)
■ 1、安装mosquitto所需要依赖
sudo apt-get install libssl-dev
sudo apt-get install uuid-dev
sudo apt-get install cmake
■ 2、下载源码包
wget http://mosquitto.org/files/source/mosquitto-1.6.10.tar.gz
或者 下载链接
■ 3、解压源码 --编译与安装源码
tar -zxvf mosquitto-1.6.10.tar.gz
cd mosquitto-1.6.10/
make //编译与安装源码
sudo make install
■ 在Ubuntu中安装mosquitto
■ 1. apt-get命令安装mosquitto
# 安装mosquitto
sudo apt-get install mosquitto
# 安装客户端
sudo apt-get install mosquitto-clients
# 安装设备端
sudo apt-get install mosquitto-dev
■ 2. 修改配置文件
配置文件地址:/etc/mosquitto/mosquitto.conf
从上面的源码地址中下载源码,然后找到mosquitto.conf文件,将其替换掉/etc/mosquitto/mosquitto.conf文件。
你也可以根据需求,阅读手册自己写mosquitto.conf
■ 3. 启动
mosquitto -c /etc/mosquitto/mosquitto.conf
■ 4. 其他处理
- 查看运行状态 systemctl status mosquitto
- 开启/关闭systemctl start/stop mosquitto
- 查看进程ps -aux | grep mosquitto
- 查看1883端口占用netstat -apn | grep 1883
- 关闭进程kill -9 pid
■ 5. 在Ubuntu下测试mosquitto
mosquitto_sub -v -t hello //订阅主题:
-h 指定域名
-t 指定订阅的主题,主题为:hello
-v 详细模式 打印调试信息
mosquitto_pub -t hello -m world //发布内容:
-t 指定订阅的主题,主题为:hello
-m 指定发布的消息的内容
■ 在Windows下用mqttfx和通信猫测试
■ 1. 通信猫订阅mqttfx发布的主题
■ 2. mqttfx订阅通信猫发布的主题
■ 3. mosquitto客户端订阅通信猫发布的主题
■ 4. 通信猫订阅mosquitto客户端发布的主题
■ 自己测试结果,(用www.tongxinmao.com 做服务器,测试结果)
■ 1、MQTT.fx 配置
■ 2、通信猫调试软件-配置
■ 3、MQTT.fx 发布主题消息,通信猫调试软件 订阅主题
■ 4、通信猫调试软件 发布主题, MQTT.fx 订阅主题消息
■ 通信猫调试助手
通信猫调试软件 V313
集串口、并口、USB、TCP、UDP、MQTT、蓝牙、WIFI、摄像头调试功能及众多实用小工具于一身的小体积绿色软件
通信猫调试软件 V313 下载地址
■ 阿里云物联网
添加链接描述
由于阿里云不支持物联网平台了。
下面我们连接 阿里推荐的 Tuya物联网平台阿里云版
看如下自己写的教程
设备连接涂鸦阿里云