azure iothub设备状态

时间:2016-10-26 08:47:59

标签: java azure-iot-hub

getConnectionState()作为连接/断开连接取决于设备。如果它发送消息我应该看到连接,如果它不发送我应该断开连接。但每次我运行以下java程序我得到状态为断开连接无关设备是否正在发送消息

RegistryManager registryManager = RegistryManager.createFromConnectionString(connectionString);
    System.out.println(registryManager.getDevices(new Integer(1000)));
    while(true){
    ArrayList<Device> deviceslist=registryManager.getDevices(new Integer(1000));
    for(Device device:deviceslist)
    {
        /*System.out.println(device.getDeviceId());
        System.out.println(device.getPrimaryKey());
        System.out.println(device.getSecondaryKey());*/
        System.out.println(device.getDeviceId());
        System.out.println(device.getConnectionState());
        /*System.out.println(device.getConnectionStateUpdatedTime());
        System.out.println(device.getLastActivityTime());
        System.out.println(device.getStatusReason());
        System.out.println(device.getStatusUpdatedTime());
        System.out.println(device.getSymmetricKey());
        System.out.println(device.geteTag());
*/  }
    }

1 个答案:

答案 0 :(得分:0)

我当然看到了。

我正在使用下面的代码创建一个简单的C#控制台应用程序,

    static async void QueryDevices()
    {
        RegistryManager manager = RegistryManager.CreateFromConnectionString(connectionString);
        while (true)
        {
            var devices = await manager.GetDevicesAsync(100);
            {
                foreach (var item in devices)
                {
                    Console.WriteLine(DateTime.Now + ": " + item.Id + ", " + item.ConnectionState);

                    System.Threading.Thread.Sleep(100);
                }
            }
        }
    }

这里的git总是查询整个设备列表,因为ConnectionState属性看起来像&#34;静态&#34;单个设备客户端实例的成员,即使实际状态发生变化也不易改变。

我的输出如下,&#34;已连接&#34; state是我使用java客户端示例向IoT Hub发送消息的时候。

enter image description here