2016-10-26 8 views
1

getConnectionState() als verbunden/getrennt je nach Gerät. Wenn es Nachricht sendet, sollte ich sehen, verbunden und wenn es nicht senden, sollte ich getrennt werden. Aber jedes Mal, wenn ich das unten Java-Programm bekomme ich Status als getrennt, unabhängig davon, ob das Gerät Nachrichten sendet oder nichtAzure Iothub Gerätestatus

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

Welche Protokoll verwenden Sie Ereignisse (http, AMQP, MQTT) zu schicken? – shachar

+0

Haben Sie den Verbindungsstatus im Geräte-Explorer überprüft? –

Antwort

0

Ich sehe definitiv anders.

ich eine einfache C# Konsolenanwendung bin Erstellung unter Verwendung des Codes,

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

Der git hier ist immer die ganze Geräteliste abfragen, da die Connection Eigenschaft irgendwie wie „statischer“ memebers der aussieht Einzelgerät-Client-Instanz, die sich nicht ändern kann, selbst wenn sich der tatsächliche Status ändert.

Und meine Ausgabe ist wie unten, der Zustand "verbunden" ist, wenn ich ein Java-Client-Beispiel verwende, um eine Nachricht an den IoT-Hub zu senden.

enter image description here

Verwandte Themen