2016-10-26 11 views
1

getConnectionState()はデバイスに応じて接続/切断されています。メッセージを送信しています。接続されていない場合は、接続を解除する必要があります。デバイスがメッセージを送信しているかどうかにかかわらず、切断された状態です。azure iothubデバイスステータス

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()); 
*/ } 
    } 
+0

? – shachar

+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); 
       } 
      } 
     } 
    } 

のConnectionStateプロパティは、何らかの形での「静的」memebersのように見えるので、ここでgitのは、常に全体のデバイスリストを照会することです実際の状態が変化しても変更されない単一デバイスクライアントインスタンス。

私の出力は以下のようになります。接続された状態は、Javaクライアントサンプルを使用してIoTハブにメッセージを送信しているときです。

enter image description here

あなたがイベント(HTTP、AMQP、MQTT)を送信するために使用されているプロトコル
関連する問題