我在Android中使用Paho MQTT客户端连接到IBM Bluemix快速入门物联网服务。连接部分运行良好,但是当我发布时,云应用程序显示我已断开连接,但在客户端中我没有例外。
我使用此权限:
<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 :(得分:2)
设备必须先注册才能连接。请参阅https://docs.internetofthings.ibmcloud.com/messaging/devices.html#/上的快速入门文档。我没有看到您的组织下注册的任何设备。此外,在组织下,它显示您的电子邮件/ ID为&#34;已过期&#34;。请在https://internetofthings.ibmcloud.com/#/处登录,并在访问标签下将自己添加为永久用户。