繁体   English   中英

确定Java Azure IoT中心DeviceClient连接状态?

[英]Determining Java Azure IoT Hub DeviceClient connection state?

有没有一种方法可以确定是否使用客户端SDK连接了客户端? 我看到了如何使用JavaScript和.NET SDKS做到这一点,但是在Java版本的DeviceClient中看不到任何类似的东西。 我想念什么?

我对Java SDK不熟悉,但是据我所知Java SDK不支持事件触发。

恐怕您必须像官方SDK一样在发送数据之前检查连接状态https://github.com/Azure/azure-iot-sdk-java/blob/master/device/iot-device-client/src/main /java/com/microsoft/azure/sdk/iot/device/DeviceClient.java#L250

另外,Java SDK使用循环来接收消息,但不接收MQTT订阅https://github.com/Azure/azure-iot-sdk-java/blob/master/device/iot-device-client/src/main/java/ COM /微软/天青/ SDK / IOT /设备/ DeviceClient.java#L197

因此,也许您还需要处理时间表以检查状态。

在Java SDK中,当您发送事件时,它将被推送到等待列表中。 此列表中有一个线程可以使用和发送消息。

当设备每秒发送消息时,我试图关闭网络连接。 由于等待列表上有一个锁,因此使用线程将被卡住。 该消息将保留在等待列表中。 恢复连接后,将发送等待列表中的消息。

无法获取等待列表的状态。 也许这是您所需的解决方法,您可以维护一个处理计数器。 发送消息时,请增加计数器,同时注册一个回调,以减少计数器。 您可以检查计数器以“猜测”连接状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM