0

Microsoft の Azure IoT Hub と MQTT/AMQP 通信全般は初めてで、自分のコンピューターで実行されているラズベリー pi と Ubunutu VM の間で簡単な通信を確立しようとしています。pi by をクライアントとして使用して、VM で実行されているサービスにメッセージを発行することを意図していました。このサービスは、メッセージの内容を標準出力にエコーするだけです。Azure Web サイト/github ページのすべての文献を読んだ後、これを行う最善の方法を見つけるのに苦労しています。ローカル ネットワークでサービスをホストすることは可能ですか? SDK の iotHub サービス クライアント サンプルは、サービスとして使用するためのものですか、それとも Azure 上の既存のサービス (SQL データベース、Web サーバーなど) と通信するためのクライアントとして使用するためのものですか? azure-iot-sdk-c/iothub_client/samples/iothub_client_sample_mqtt を使用して、IoT Hub ポータルにメッセージを送信できました。c サンプルですが、メッセージが発行されるトピックをどこに含めるかわかりませんでした。ヘルプ/ご意見をいただければ幸いです。

ありがとう

4

2 に答える 2

0

Azure IoT Hub は単なるメッセージ チャネルであり、メッセージを処理しません。

デバイス側 (raspberry pi) では、デバイス SDK を使用して MQTT で D2C メッセージを送信すると、機能します。サービス側 (Ubuntu VM) の場合、raspberry pi から送信された D2C メッセージを受信するにはEvent Hub SDKが必要です (Why Event Hub? https://blogs.msdn.microsoft.com/zhqqitest/2017/03/18/do-not- make-it-a-mess-why-there-so-many-endpoints-in-iot-hub/ )。

また、IoT Hub はデバイス側でのみ MQTT をサポートします。つまり、サービス側 (Ubuntu VM) で MQTT を使用して IoT Hub に接続することはできませんが、AMQP が必要です。

別の質問があるかもしれませんが、サービス側で D2C メッセージをリッスンする AMQP トピックは何ですか? です/<compatibleName>/ConsumerGroups/<ConsumerGroups>/Partitions/<PartitionID>

  • 互換性のある名前: IoT Hub イベント ハブと互換性のある名前 (混乱 :-S)、Azure portal から見つけることができます (エンドポイント – 組み込みのエンドポイント – イベント)
  • $DefaultConsumerGroups:既定では、Azure portal から見つけることができます
  • PartitionID: パーティション ID。AMQP を使用してイベント ハブに接続するときに取得できます。通常は から始まる数字です。0

AMQP を直接呼び出したくない場合は、IoT Hub 接続文字列 (イベント ハブと互換性のあるエンドポイントまたはイベント ハブと互換性のある名前ではありません。イベント ハブ SDK が自動的に実行します) を使用して、Ubuntu VM でイベント ハブ SDK を使用するだけです。 .

于 2017-03-20T08:52:16.910 に答える