已通过Java SDK与IoT代理端点建立了连接,我可以在JVM中看到3个相关线程:MQTT Rec:,MQTT Snd:和MQTT Call。 当我使用AWSIotMqttClient调用client.publish(...)时,客户端立即通过以下日志消息与代理断开连接:
2020年5月16日,上午12:15:52 com.amazonaws.services.iot.client.core.AwsIotConnection onConnectionFailure INFO:连接暂时丢失
断开连接的原因(由Lambda进行的状态更改事件捕获): CONNECTION_LOST
我正在使用init方法建立连接,如下所示:
public void init() {
client = new AWSIotMqttClient(MQTT_CLIENT_ENDPOINT, MQTT_CLIENT_ID + new BigInteger(64, new SecureRandom()).toString(32), readStore(), KEYPASS);
client.setPort(8883);
try {
client.connect(5000, false);
} catch (AWSIotException e) {
...
}
}
连接成功建立。
我正在尝试以其他方法发布(作为Web服务端点代码,在另一个线程中运行):
try {
AWSIotMessage message = new AWSIotMessage(topic, AWSIotQos.QOS0, commandString);
client.publish(message, 3000);
} catch (AWSIotException e) {
...
}
commandString
已发布到该主题,但是MQTT连接立即断开并重新连接。
以下是证书所附的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"*"
],
"Resource": [
"*"
]
}
]
}
我要发布的主题:“ topictest”
请告知。