2016-06-20 6 views
1

ich Daten an die IoT Hub senden und empfangen sie, es funktioniert, aber ich weiß nicht, wie ich mit den empfangenen Daten arbeiten können: Hier ist mein Code, Daten zu empfangen:accses Daten von IoT Hub Azure mit Java

public void accept(PartitionReceiver receiver) 
      { 
       System.out.println("** Created receiver on partition " + partitionId); 
       try { 
        while (true) { 
         Iterable<EventData> receivedEvents = receiver.receive(10).get(); 
         int batchSize = 0; 
         if (receivedEvents != null) 
         { 
          for(EventData receivedEvent: receivedEvents) 
          {          
           System.out.println(String.format("| Time: %s", receivedEvent.getSystemProperties().getEnqueuedTime())); 
           System.out.println(String.format("| Device ID: %s", receivedEvent.getProperties().get("iothub-connection-device-id"))); 
           System.out.println(String.format("| Message Payload: %s", new String(receivedEvent.getBody(), Charset.defaultCharset()))); 
           batchSize++; 
          } 
         } 
        } 
       } 
       catch (Exception e) 
       { 
        System.out.println("Failed to receive messages: " + e.getMessage()); 
       } 
      } 

ich mag würde mit den empfangenen Daten arbeiten, hier werde ich die Daten als JSON-String:

System.out.println(String.format("| Message Payload: %s", new String(receivedEvent.getBody(), Charset.defaultCharset()))); 

Der Datenausgang ist: Produkt: xy, Preis: 2.3. Ich mag die Daten nehmen zu:

String product= product; 
double price= price; 

Wie kann ich die empfangene Nutzlast in den Variablen speichern?

Dank

+0

Können Sie weitere Informationen dazu bereitstellen, wie Sie versuchen, die Daten zu empfangen? Sie können diesen Artikel nützlich finden, der sowohl das Senden als auch das Empfangen von Daten an IoT Hub mit dem Java SDK beschreibt: https://azure.microsoft.com/documentation/articles/iot-hub-java-java-getstarted/ –

+0

Es funktioniert! danke @ Peter Pan und Domic Betts – ofitz

Antwort

2

Es gibt zwei Arten von Nachrichten, die device-to-cloud und cloud-to-device umfassen.

Für die erste Art, device-to-cloud Nachrichten, wie @DominicBetts sagte, können Sie auf den Abschnitt Receive device-to-cloud messages zu wissen, wie Sie d2c Nachrichten mit Event Hub-kompatiblen Endpunkt erhalten. Und es gibt zwei Beispiele als Referenzen auf GitHub, siehe unten.

  1. Simple send/receive sample: Zeigt, wie Sie eine Verbindung herstellen und dann Nachrichten an und von IoT Hub senden und empfangen, wobei Sie das Protokoll Ihrer Auswahl als Parameter übergeben.
  2. Simple sample handling messages received:: Zeigt, wie Sie eine Verbindung zum IoT Hub herstellen und Nachrichten verwalten, die vom IoT Hub empfangen werden, wobei Sie das Protokoll Ihrer Auswahl als Parameter übergeben.

Für die zweite Art, cloud-to-device Nachrichten können Sie auf den Abschnitt Receiving messages on the simulated device zu wissen, wie c2d Nachrichten zu empfangen. Der Beispielcode in dem Artikel wurde für C# geschrieben, aber ich denke, es ist einfach für die Verwendung von Java anstelle von C#. Beachten Sie bitte den Hinweis im Abschnitt zur Auswahl des geeigneten Protokolls.

+0

Haben Sie eine Idee? – ofitz

+0

@ofitz Bitte siehe http://stackoverflow.com/questions/38028130/how-can-i-work-with-the- received-data-from-azure-iot-hub. –

Verwandte Themen