MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
(1)Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);
(2)payload,可以理解为消息的内容,是指订阅者具体要使用的内容。
以Windows系统下MQTT.fx为例,介绍模拟设备以MQTT协议接入物联网平台的步骤。
1、我们在MQTT.fx官网下载并安装MQTT.fx,建议安装最新版本。
2、打开MQTT.fx软件,单击螺纹图案。
3、在该界面填写好相应的参数
Profile Name:可以任意填写
Profile Type:选择MQTT Broker
Broker Address:{YourProductKey}.iot-as-mqtt.{YourRegionId}.aliyuncs.com
我们将上一篇文章《物联网却不能物物相联?阿里云物联网平台得这么设置!》中的设备所属产品的ProductKey替换{YourProductKey};{YourRegionId}根据你的服务器注册时的位置填写,例如如果你的地区显示是华东2的,则可以{YourRegionId}替换为cn-shanghai,具体可以在地域和可用区查询。
Broker Port:1883
Client ID:{ClientID}|securemode={Mode},signmethod={SignMethod}|
{ClientID}建议替换为12345;{Mode},securemode=3:TCP直连模式,无需设置SSL/TLS信息。securemode=2:TLS直连模式,需要设置SSL/TLS信息,建议为3;{SignMethod}建议替换为hmacsha1;
User Name:{DeviceName}&{ProductKey}
由设备名DeviceName、and(&)和产品ProductKey组成。
Password:
点击下载Password生成小工具,解压文件后,双击sign.html文件。
productKey、deviceName、deviceSecret:具体在上一篇《物联网却不能物物相联?阿里云物联网平台得这么设置!》有提及。
timestamp:可不填写
clientId:设备的ID信息,与MQTT.fx的Client ID中{clientId}一致。
method:选择签名算法类型,与MQTT.fx的Client ID中{SignMethod}一致。
点击Generate即可生成password
设置完成后,单击右下角的OK。
单击Connect。右侧亮绿灯,表示连接成功
在MQTT.fx上单击Subscribe,在Subscribe文本框中,输入《物联网却不能物物相联?阿里云物联网平台得这么设置!》获取的具有订阅权限的自定义Topic,比如我的其中一个/sys/a16OKk6dTya/{deviceName}/thing/event/property/post_reply,需替换{deviceName}为对应的设备名称。
单击Subscribe。
订阅成功后,该Topic将显示在列表中。
返回物联网平台,进入该设备的设备详情页面,在Topic列表页签下,单击已订阅Topic对应的发布消息。
回到MQTT.fx上,查看接收到的消息。
在MQTT.fx上,单击Publish,在Publish文本框中,输入一个具有发布权限的自定义Topic。在文本编辑页面,输入要发送的消息内容,然后单击Publish。
回到物联网平台,在设备详情页面,单击日志服务页签的前往查看,在日志服务页面,查看设备到云消息。
与下行通信测试类似。
“本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/kasami_/article/details/117387096。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。”