无法使用AWSIotMqttManager和AWS Cognito凭证连接到AWS Iot

时间:2019-08-13 17:30:55

标签: java android amazon-cognito aws-amplify aws-iot

我正在使用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进行连接

0 个答案:

没有答案