使用 BG96 和 MQTT 协议将数据发布到 aws IoT 时出错

error when publish data to aws IoT using BG96 and MQTT protocol

我正在尝试使用 BG96(使用 AT 命令的 NB-IoT 设备)将我的数据发布到亚马逊网络服务 我正在关注官方文档(Quectel) 所以我配置 SSL 参数(使用命令:at+ qsslcfg=...)并成功启动 MQTT SSL 连接(AT+QMTOPEN=...)但是当我尝试连接到 MQTT 服务器时(AT+QMTCONN=...) , 连接立即关闭 请帮助,我该如何解决这个问题并将我的数据发布到亚马逊网络服务?

AT+QSSLCFG="ciphersuite",1,0x0035
OK
AT+QSSLCFG="sslversion",1,3
OK
AT+QSSLCFG="cacert",1,"ufs:cacert.pem"
OK
AT+QSSLCFG="clientcert",1,"ufs:clientcert.pem"
OK
AT+QSSLCFG="clientkey",1,"ufs:clientkey.pem"
OK
AT+QSSLCFG="seclevel",1,2
OK
AT+QSSLCFG="negotiatetime",1,300
OK
AT+QSSLCFG="ignorelocaltime",1,0
OK
//Configure MQTT session into SSL mode. 
AT+QMTCFG=”SSL”, 0, 1, 1
//Start MQTT SSL connection 
AT+QMTOPEN=0, "a2xxxxxxxxxzxx.iot.us-east-1.amazonaws.com",”8883”
OK // ok 
+QMTOPEN: 0,0 // means the connction is starts succsesfully 
//Connect to MQTT server
AT+QMTCONN=0,"bg96"
ok
+QMTSTAT 0,1 //but this message means that the connection is closed 

我在 BG96 上遇到了同样的问题,端口 8883 上的 MQTTS。 根据 AT MQTT 手册,我使用此调制解调器的解决方案是将 MQTT 版本强制为 "v4"。所以,在你的 AT+QMTCFG=”SSL”, 0, 1, 1 之后,尝试使用 AT+QMTCFG="version",0,4,然后打开连接并验证。

我找到了解决办法, 我的问题是我应该创建一个允许连接到 aws 的策略并将这个策略附加到我创建的东西上, 如果使用 nb-iot 那么我们应该将 DNS 地址配置为 Google public DNS : 8.8.8.8 和 8.8.4.4 当然,还要仔细发出所有命令以更新证书、配置 ssl 上下文、激活 tcp 上下文,最后打开 mqtt 连接并连接以发布或订阅主题