前面我们已经用MQTT.fx实现了与腾讯云的通信,现在要用mosquitto命令实现与腾讯云通信
腾讯云部分
我们需要在腾讯云创建一个新的产品,打开物联网通信
因为之前在创建产品时选择的是证书认证,证书认证为非对称加密方式,而密钥认证方式为对称加密方式。当我们使用mosquitto上接入腾讯云的,支持PSK加密也就是对称加密。
创建好产品后创建一个设备,创建好之后点击管理。点击设备信息下划
看到设备密匙,里面的信息是我们连接需要用到的。
本地篇
打开linux,用命令行连接腾讯云
订阅: mosquitto_sub 命令:(参数有点多,慢慢粘贴就行)
mosquitto_sub -h “PT3V2BJ8XY.iotcloud.tencentdevices.com” -p 1883 -t “PT3V2BJ8XY/ds18b20/data” -i “PT3V2BJ8XYds18b20” -u “PT3V2BJ8XYds18b20;12010126;PD5D1;1663022960” -P “bfa2284580cd63bf79e2579936b5294de63c6660ff5c7fbf1f3f25e797a872bd;hmacsha256”
再复习一下参数的函数
-h :主机地址 。在这里是 腾讯云,产品ID+.iotcloud.tencentdevices.com(广州设备)
-p:端口号,选择密匙接入所以port 为1883
-t :指定发布的主题
-i :clientID,指定要给哪个clientId的用户发送消息
-u:指定broker访问用户名,在这里就是设备密匙里的mqtt username
-P :指定broker访问密码,在这里就是 设备密匙里的mqtt password
打开腾讯云,发现设备在线,就是连接成功了(我发现腾讯云连接的比较慢,有时候需要来回刷新几次才能显示在线;或者一直显示离线但其实是已经连接上的,这时候试试能不能发消息)
在腾讯云发消息,本地可以收到腾讯云发送的消息
发布:(和前面订阅的参数大致相同,只是后面加了一个要发的内容)
mosquitto_pub -h “PT3V2BJ8XY.iotcloud.tencentdevices.com” -p 1883 -t “PT3V2BJ8XY/ds18b20/data” -i “PT3V2BJ8XYds18b20” -u “PT3V2BJ8XYds18b20;12010126;PD5D1;1663022960” -P “bfa2284580cd63bf79e2579936b5294de63c6660ff5c7fbf1f3f25e797a872bd;hmacsha256” -m “222222222222222222222222222”
本地发送消息,腾讯云能收到
总结
通过命令行连接腾讯云后,我懂了连接腾讯云需要哪些参数,就可以把这些参数写进配置文件,下一步就可以实现用库函数连接腾讯云了