2016-01-20 72 views
1

我在Android中使用Paho MQTT客户端连接到IBM Bluemix快速入门IoT服务。连接部分运行良好,但是当我发布时,云应用程序显示我断开连接,但在客户端中,我没有发生异常。Bluemix快速入门在与Paho MQTT客户端发布时断开连接

我用这个权限:

<uses-permission android:name="android.permission.INTERNET"/> 

连接:

String broker  = "tcp://quickstart.messaging.internetofthings.ibmcloud.com:1883"; 
String clientId  = "d:quickstart:iotqs-sensor:myDeviceID"; 

try { 
    client = new MqttClient(broker, clientId, null); 
    MqttConnectOptions connOpts = new MqttConnectOptions(); 
    client.connect(connOpts); 
} catch(MqttException me) { 

发布:

String topic  = "iot-2/evt/iotsensor/fmt/jon"; 
String content  = "{ \"d\" : { \"data\" : 5 } }"; 

try { 
    MqttMessage message = new MqttMessage(content.getBytes()); 
    message.setQos(0); 
    client.publish(topic, message); 
} catch(MqttException me) { 

奇怪的是:这个代码工作昨天。 可能是什么问题? 下一步将连接并发布到我自己的Bluemix IoT服务,但如果我无法发送消息给演示,我无法期待更多。

更新: 如果我连接并发布,快速入门应用程序显示我已断开连接,但客户端仍然允许我发布约3秒,之后出现异常:32104(客户端未连接)。

+0

您是否将您的设备注册为iotqs-sensor?如果是这样,请让我知道你的组织。 – ValerieLampkin

+0

不,我只是试图模拟bluemix web模拟器,我看到它使用iotqs-sensor。但我注册了一个设备:type = myDevice,id = myDeviceID,org = ijlqtn –

回答

2

设备必须先注册才能连接。请参阅https://docs.internetofthings.ibmcloud.com/messaging/devices.html#/的快速入门文档。我没有看到您组织下注册的任何设备。此外,在该组织下,它会将您的电子邮件/ ID显示为“已过期”。请登录https://internetofthings.ibmcloud.com/#/,并将自己添加为访问标签下的永久用户。

+0

我发现了这个游乐场,我可以在那里注册设备: https://play.internetofthings.ibmcloud.com/dashboard/#/devices/browse 类型ID = myDeviceType 设备ID = myDeviceID 组织发挥= 的clientId = d:玩法:myDeviceType:myDeviceID https://quickstart.internetofthings.ibmcloud.com/#/device/myDeviceID/sensor/ 但是这样,我不能连接,不像以前的版本。 –

+0

我没有看到任何设备类型的iotqs传感器注册到播放机构。 – ValerieLampkin

+0

是的,因为我将它更改为myDeviceType。感谢您的帮助,现在正在工作。现在我尝试连接到我自己的bluemix应用程序。快速启动应用程序源可用吗? –

相关问题