首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mqtt连接失败,异常“未授权连接(5)”android

Mqtt连接失败,异常“未授权连接(5)”android
EN

Stack Overflow用户
提问于 2017-07-05 19:40:19
回答 2查看 8.2K关注 0票数 0

嗨,我正在尝试用我刚刚注册的android设备连接mqtt,但是我一直收到错误。

代码语言:javascript
复制
Not authorized to connect (5)

这是我的一些代码

代码语言:javascript
复制
        client = new MqttAndroidClient(context, connectionURI, clientID);
        client.setCallback(callbacks);

        String username = IOT_DEVICE_USERNAME;
        char[] password = this.getAuthorizationToken().toCharArray();

        MqttConnectOptions options = new MqttConnectOptions();
        options.setCleanSession(true);
        options.setUserName(username);
        options.setPassword(password);

        Log.d(TAG, "Connecting to server: " + connectionURI);
        try {
            // connect
            return client.connect(options, context, listener);
        } catch (MqttException e) {
            Log.e(TAG, "Exception caught while attempting to connect to server", e.getCause());
            throw e;
        }

其中IOT_DEVICE_USERNAME是字符串"use-token-auth"connectionUri"tcp://<"organization">.messaging.internetofthings.ibmcloud.com:8883"

有趣的是,在这个错误发生之前,我得到了这个日志

代码语言:javascript
复制
Unregister alarmreceiver to MqttServiced:<"organisation">:<"DeviceType">:<"deviceId">

这是错误的stackTrace

代码语言:javascript
复制
07-06 12:27:24.214 9009-9009/wibicom.wibeacon3 W/System.err: Not authorized to connect (5)
07-06 12:27:24.214 9009-9009/wibicom.wibeacon3 W/System.err:     at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:28)
07-06 12:27:24.214 9009-9009/wibicom.wibeacon3 W/System.err:     at org.eclipse.paho.client.mqttv3.internal.ClientState.notifyReceivedAck(ClientState.java:988)
07-06 12:27:24.214 9009-9009/wibicom.wibeacon3 W/System.err:     at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:140)
07-06 12:27:24.214 9009-9009/wibicom.wibeacon3 W/System.err:     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
07-06 12:27:24.214 9009-9009/wibicom.wibeacon3 W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-06 12:27:24.214 9009-9009/wibicom.wibeacon3 W/System.err:     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
07-06 12:27:24.214 9009-9009/wibicom.wibeacon3 W/System.err:     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
07-06 12:27:24.214 9009-9009/wibicom.wibeacon3 W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
07-06 12:27:24.214 9009-9009/wibicom.wibeacon3 W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
07-06 12:27:24.214 9009-9009/wibicom.wibeacon3 W/System.err:     at java.lang.Thread.run(Thread.java:818)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-06 17:16:51

问题已经解决了。我确实将它用作客户机id,作为对MqttAndroidClient对象的构造函数的输入。

代码语言:javascript
复制
String iotClientId = "d:"+ORG+":"+DEVICE_TYPE+":"+DEVICE_ID;

然而,由于我将Android设备重新设置为网关,因为它实际上是连接到传感器所在的多个外围设备。要解决这个问题,我使用上面的行

代码语言:javascript
复制
String iotClientId = "g:"+ORG+":"+DEVICE_TYPE+":"+DEVICE_ID;
票数 0
EN

Stack Overflow用户

发布于 2017-07-06 14:07:59

我发现了这个错误:

令牌失败(在数据库中找不到设备/网关):ClientID='d:4rxa4d:AndroidDevice:1c39476b8dd0‘

您是否为AndroidDevice创建了设备类型,并在沃森IoT平台中将ID 1c39476b8dd0注册到您的组织中?

教程演示如何注册设备。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44934679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档