本文主要是对mqtt的学习使用,其中服务器是基于阿里云服务器的mqtt功能,客户端使用的是mqttx软件。
一、服务器部分搭建说明
1、如果是首次使用,则需要经过注册与认证的步骤。
2、找到"产品与服务"-->"物联网平台",然后在实例中选择"开通"(如果是已经开通了,则略过),直接点击"已开通"进入具体操作页面。相关操作如下:
点击"已开通"进入操作界面
3、创建产品。
点击"设备管理"-->"产品"-->"创建产品"进行产品的创建
根据实际情况填写(实际的数据并无意义)
双击相应的产品,并点击发布,如下:
4、创建设备
依次点击"设备"-->"添加设备"
5、定义主题(topic类列表)。
依次点击"产品"-->"topic类列表"-->"自定义topic"-->"定义topic类"-->"发布”
注:如果是已发布的,可以选择"撤销发布",等再次修改、新增后,最后再发布。
以上服务端的配置就完成了,可以等待客户端的连接、订阅、发布等操作。
需要注意的点:
1)定义的主题名称格式是:/im1sOncvBpV/${deviceName}/user/mqtt_public_subscrib_test,因此在客户端订阅主题时需要完整的。
2)阿里云对应的服务器域名的格式说明:$(productKey).iot-as-mqtt.$(region).aliyuncs.com.示例:im1sOncvBpV.iot-as-mqtt.cn-shanghai.aliyuncs.com。其中region对应的是"设备"-->"设备信息"-->"地域"
地域的转换具体见"地域和可用区" (https://help.aliyun.com/document_detail/40654.htm?spm=a2c4g.163765.0.0.25955181PLLKpF)
2)用户名和密码的生成说明:
2.1)用户名的格式为:$(deviceName)&$(productKey)。示例:mqtt_1&im1sOncvBpV或者mqtt_2_paho&im1sOncvBpV
2.2)密码需要借助工具生成 (链接: https://files.alicdn.com/tpsservice/88413c66e471bec826257781969d1bc7.zip)
3)服务器的端口为1883
4)mqttclientId的格式:$(clientId)|securemode=3,signmethod=hmacsha1| 。示例:00001|securemode=3,signmethod=hmacsha1|
其中:clientId为设备的Id信息,可随意。建议使用mac或sn。securemode为安全模式,tcp直连则设置为securemode=3,tls连接则为securemode=2。signmethod为算法类型,支持hmacmd5和hmacsha1。
二、客户端部分说明
首先当然是下载mqttx,并且安装。
mqttx下载的地址:MQTTX: Cross-platform MQTT 5.0 Desktop Client
1、连接配置说明
配置说明:
1)名称 可随意
2)clientId 对应着服务器上的mqttclientId,可见上面的说明
3)服务器地址 见服务器部分的说明
4)端口 是1883
5)用户名 见服务器部分的说明
6)密码 是通过工具生成的,见服务器部分的说明
7) 直接tcp直连,无tls/ssl的加密
2、订阅配置说明
注:topic为服务器上的"产品"--->"topic"类列表中(可自定义)
注:其中的deviceName需要改为相应的设备名
3、发布消息说明
服务器上"设备"-->"topic列表"-->"发布消息"
4、广播说明
可通过订阅/broadcast/im1sOncvBpV/all_device 来实现客户端1发布,客户端2接受订阅
对应的是"产品"-->"基础通信topic"-->"广播"