我正在使用AWS Cognito进行登录并获取临时凭证。我在浏览器中的Ionic应用程序中尝试了PubSub API,它对于设备影子更新工作正常。现在,我已经用Java编写了适用于Android的代码,但是MqttManager仍然保持重新连接。
这是Ionic 4 +电容器插件中的本机代码
@PluginMethod()
public void Init(PluginCall call)
{
String clientId = call.getString("clientId", null);
if(clientId == null)
{
UUID uuid = UUID.randomUUID();
clientId = uuid.toString();
}
mqttManager = new AWSIotMqttManager
(
clientId,
"m6jklghidefabc-ats.iot.us-west-1.amazonaws.com"
);
String id = AWSMobileClient.getInstance().getIdentityId();
if(id == null)
{
call.reject("Could not get identity id");
return;
}
else
{
Log.i("Plugin===", id);
}
//
// Connect MQTT Manager
//
try
{
MqttPlugin th = this;
mqttManager.connect(AWSMobileClient.getInstance(), new AWSIotMqttClientStatusCallback()
{
@Override
public void onStatusChanged(final AWSIotMqttClientStatus status, final Throwable throwable)
{
Log.i("Plugin====", status.toString());
}
});
JSObject ret = new JSObject();
ret.put("clientId", clientId);
call.resolve(ret);
}
catch (final Exception e)
{
Log.i("Plugin==E=", e.getMessage());
call.reject(e.getMessage());
}
}
状态为正在连接,然后重新连接... 重新连接不断在Logcat中打印 请告诉我为什么在使用AWS Cognito进行身份验证时可以正常工作的原因导致连接失败。我的政策似乎已经到位,因为从浏览器中我可以使用Ionic 4应用程序中的PubSub api进行连接