AWS IoT Java SDK-代理在消息发布后断开连接

时间:2020-05-19 07:58:41

标签: java amazon-web-services mqtt iot aws-iot

已通过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”

请告知。

0 个答案:

没有答案