我正在使用azure iot设备SDK(1.3.31)连接模拟设备。对于某些设备,我在进行此调用时会出现此异常:
//pseudo code
deviceInfo.device = registryManager.getDevice(deviceId);
String deviceConnectionString = new StringBuilder()
.append("HostName=").append(hubHostname)
.append(";DeviceId=").append(device.getDeviceId())
.append(";SharedAccessKey=").append(device.getPrimaryKey())
.toString();
DeviceClient deviceClient = new DeviceClient(deviceConnectionString, IotHubClientProtocol.MQTT);
deviceClient.open();
java.io.IOException: Unable to subscribe to topic :devices/sim3_0001/messages/devicebound/# because java.io.EOFExceptionConnection lost
at com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection.open(MqttIotHubConnection.java:142) ~[iot-device-client-1.2.30.jar:na]
at com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttTransport.open(MqttTransport.java:83) ~[iot-device-client-1.2.30.jar:na]
at com.microsoft.azure.sdk.iot.device.DeviceIO.open(DeviceIO.java:212) ~[iot-device-client-1.2.30.jar:na]
at com.microsoft.azure.sdk.iot.device.DeviceClient.open(DeviceClient.java:188) ~[iot-device-client-1.2.30.jar:na]
Connection lost (32109) - java.io.EOFException
at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:146)
at java.lang.Thread.run(Thread.java:745)
Lost connection to the server. Reconnecting 0 time.
Caused by: java.io.EOFException
at java.io.DataInputStream.readByte(DataInputStream.java:267)
at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:65)
at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:107)
body:
protocol: Mqtt
authType: { "scope": "device", "type": "sas", "issuer": "iothub" }
time: 2017-06-13T21:13:48.2406702Z
operationName: deviceConnect
category: Connections
level: Information
deviceId: sim3_0001
ipAddress: xx.xx.xxx.XXX
enqueuedTimeUtc: Tue Jun 13 2017 17:13:53 GMT-0400 (EDT)
offset: 355136
applicationProperties:
category: Connections
level: Information
operationName: deviceConnect
sequenceNumber: 705
annotations:
x-opt-sequence-number: 705
x-opt-offset: 355136
x-opt-enqueued-time: Tue Jun 13 2017 17:13:53 GMT-0400 (EDT)
offset: 355536
enqueuedTimeUtc: Tue Jun 13 2017 17:13:53 GMT-0400 (EDT)
body:
protocol: Mqtt
authType: { "scope": "device", "type": "sas", "issuer": "iothub" }
time: 2017-06-13T21:13:48.3656729Z
operationName: deviceDisconnect
category: Connections
level: Error
statusCode: 404
statusType: 404104
statusDescription: DeviceConnectionClosedRemotely
deviceId: sim3_0001
ipAddress: xx.xx.xxx.XXX
annotations:
x-opt-sequence-number: 706
x-opt-offset: 355536
x-opt-enqueued-time: Tue Jun 13 2017 17:13:53 GMT-0400 (EDT)
applicationProperties:
category: Connections
level: Error
operationName: deviceDisconnect
sequenceNumber: 706
另一个注意:新设备连接/订阅成功,似乎它们在重新连接时更经常失败。如果我将打开的呼叫放在一个循环中,并在睡眠1秒后重试,设备最终会成功连接。
根据您的错误信息java.io.ioException:无法订阅topic:devices/sim3_0001/messages/devicebound/#因为java.io.eofexceptionConnection丢失
,我认为您试图通过使用devices/{device_id}/messages/devicebound/#
作为主题筛选器订阅云到设备消息。Azure offical文档的将设备应用程序从AMQP迁移到MQTT
&接收云到设备消息
使用MQTT协议与IoT hub通信
这一小节解释了以下问题的原因。
接收云到设备消息
要从IoT Hub接收消息,设备应该使用devices/{device_id}/messages/devicebound/#
作为主题筛选器进行订阅。主题筛选器中的多级通配符#仅用于允许设备接收主题名称中的其他属性。IoT集线器不允许使用#或?子主题筛选的通配符。由于IoT Hub不是一个通用的pub-sub消息传递代理,它只支持文档化的主题名称和主题过滤器。
对于Azure IoT Hub,“MQTT不支持放弃/拒绝,所以我们将只显示从IoTHub收到的消息,并返回完成”。GitHub上有一个官方示例代码,您可以参考它来更改代码并使其与MQTT一起工作。
我正在尝试将蓝牙设备与我的android应用程序连接。到目前为止,它运行良好。 现在的问题是,当我的设备超出范围时,我显示一个对话框并要求用户重新连接或不连接。 有时我能够重新连接设备,有时我确实会出错,即。 我真的不知道为什么会这样
我创建了新的Deploy-to-staging项目,并将其配置编辑如下: > 在构建中,选择从另一个项目复制工件选择项目工件 选择生成后操作 我怎么才能修好这个? 我的tomcat凭据位于[tomcat目录]/conf/tomcat-users.xml中,如下所示:
我正在与eclipse泛美卫生组织和蚊子工作。我正在发送QOS-1级别的消息。我已经改变了mosquitto的配置,就像在这个问题中回答的那样。我正在使用mqtt镜头来测试。在用户断开连接后,Mosquitto不发送消息。
AGPBI:{“kind”:“error”,“text”:“Android资源链接失败”,“sources”:[{}],“original”:“error::AAPT:D:\Android basics kotlin cupcake app starter\app\build\intermediates\processed\u res\debug\out\resources-debug.ap\:错
我的项目中出现了以下错误:`Failure:生成失败,出现异常。 > 其中:设置文件'/home/kaizar/music/oreo-fashion-v2.3.0/app/rn_oreo/android/Settings.gradle'行:4 错误:评估设置“rn_oreo”时出现问题。 请访问https://help.gradle.org获取更多帮助