2017-03-17 9 views
0

Ich bin neu bei Microsoft Azure IoT Hub und MQTT/AMQP Kommunikation im Allgemeinen und ich versuche, einfache Kommunikation zwischen meinem Raspberry Pi und einem Ubunutu VM auf meinem Computer zu etablieren. Ich wollte meinen pi als Client verwenden, um Nachrichten an einen Dienst zu veröffentlichen, der auf meiner VM läuft und einfach den Inhalt der Nachricht ausgibt. Nachdem ich die gesamte Literatur auf der Azure-Website/github-Seite gelesen habe, habe ich Probleme, den besten Weg dafür zu finden. Ist es möglich, einen Dienst in Ihrem lokalen Netzwerk zu hosten? Sind die iotHub-Service-Client-Beispiele im SDK für die Verwendung als Dienste oder als Clients gedacht, die mit vorhandenen Diensten auf Azure kommunizieren sollen (SQL-Datenbanken, Webserver usw.)? Ich konnte Nachrichten mit dem Muster azure-iot-sdk-c/iothub_client/samples/iothub_client_sample_mqtt.c an mein IoT Hub-Portal senden, konnte aber nicht herausfinden, wo das Thema enthalten sein sollte, zu dem meine Nachricht veröffentlicht wurde. Ich würde wirklich jede Hilfe/Eingabe schätzen.Azure IoT Hub einfache Publish-Subcribe Kommunikation

Dank

+0

Ich stimme @Olivier Bloch zu. Was das Einbinden von Themen betrifft, [da IoT Hub kein allgemeiner Pub-Sub-Messaging-Broker ist, unterstützt er nur die dokumentierten Themennamen und Themenfilter.] (Https://docs.microsoft.com/en-us/azure/iot -hub/iot-hub-mqtt-support # using-das-mqtt-protokoll-direkt) –

Antwort

0

Azure IoT Hub ist nur ein Nachrichtenkanal und verarbeitet keine Nachrichten.

Für die Geräteseite (Raspberry Pi) verwenden Sie ein Geräte-SDK, um D2C-Nachrichten mit MQTT zu senden, und es funktioniert. Für die Service-Seite (Ubuntu VM) benötigen Sie Event Hub SDK, um D2C-Nachrichten zu empfangen, die von raspberry pi gesendet wurden (Why Event Hub? https://blogs.msdn.microsoft.com/zhqqitest/2017/03/18/do-not-make-it-a-mess-why-therere-so-many-endpoints-in-iot-hub/).

Außerdem unterstützt IoT Hub MQTT NUR auf der Geräteseite, dh Sie können keine Verbindung zum IoT Hub mit MQTT auf der Dienstseite (Ubuntu VM) herstellen, aber Sie benötigen AMQP.

Sie haben möglicherweise eine andere Frage, was ist dann das AMQP-Thema für D2C-Nachrichten auf der Dienstseite zu hören? Es ist /<compatibleName>/ConsumerGroups/<ConsumerGroups>/Partitions/<PartitionID>.

  • compatibleName: IoT Hub Event-Hub-kompatiblen Namen (was für ein Durcheinander: -S), können Sie es von Azure-Portal (Endpunkte - Built-in-Endpunkte - Events)
  • ConsumerGroups: Sie können es finden von Azure-Portal, $Default standardmäßig
  • PartitionID: Partitions-ID, können Sie es bekommen können, wenn Sie auf der Event-Hub mit AMQP verbinden, es ist eine Zahl, beginnen ususally von 0

Wenn Sie nicht wollen Rufen Sie AMQP direkt auf, Sie können Event Hub SDK einfach unter Ub verwenden Untu VM mit IoT Hub-Verbindungszeichenfolge (kein Event-Hub-kompatibler Endpunkt oder Event-Hub-kompatibler Name, das Event Hub-SDK erledigt dies für Sie).

2

Die Azure IoT Gerät SDKs Geräteanwendungen bauen gemeint sind, die mit dem Azure IoT-Hub-Service, die in der Azure Cloud lebt, wird die Verbindung und Kommunikation.

Die Azure IoT Dienst SDKs sollen Anwendungen erstellen, die zum Konfigurieren, Überwachen und Interagieren mit einer Instanz des in der Azure Cloud ausgeführten Azure IoT Hub-Dienstes verwendet werden.

Wenn Sie nach einer einfachen Lösung zum Herstellen einer lokalen Geräte-zu-Gerät- oder Geräte-zu-Server-Kommunikation mit MQTT suchen, können Sie sich MQTT-Broker-Lösungen ansehen. Wenn Sie eine IoT Cloud für die Verwaltung von Geräten, die einfache Sicherung und die Authentifizierung verwenden möchten, können Sie Telemetrie mit hohem Durchsatz in die Cloud hochladen und von den erweiterten Analysediensten in der Cloud profitieren (Big Data, Machine Learning, ...). ..), dann Azure IoT Hub ist für Sie.

Verwandte Themen