Note
Azure Web PubSub での MQTT のサポートはプレビュー段階です。
概要
MQTT は、リソースに制約があるデバイス用に設計された軽量のパブリッシュ/サブスクライブ メッセージング プロトコルです。 Azure Web PubSub サービスで WebSocket トランスポート経由の MQTT がネイティブにサポートされるようになりました。これにより、MQTT Web クライアントと他の Web PubSub クライアント間のクロス通信が可能になりました。
この新機能は、次の 2 つの主要なユース ケースに対応します。
プロトコルが混在するリアルタイム アプリケーション: 異なるプロトコルを使用するクライアントが Azure Web PubSub サービスを介してリアルタイムでデータを交換できるようにします。
より多くのプログラミング言語のサポート: 任意の MQTT ライブラリを使用してサービスに接続できるため、C#、JavaScript、Python、Java で使用可能な SDK を超えて、C++ などの言語で記述されたアプリケーションと統合できます。
この MQTT サポートは MQTT プロトコルの軽量な適応であり、Azure Web PubSub で既にサポートされている機能にのみ拡張されることに注意してください。 サポートされていない MQTT 機能には、次のようなものがあります。
- ワイルドカード サブスクリプション
- 保持されたメッセージ
- 共有サブスクリプション
- トピックの別名
サポートされている MQTT 機能の包括的な一覧については、このドキュメント記事を参照してください。
Azure 上のより包括的な MQTT ブローカー ソリューションについては、Azure Event Grid を探索することをお勧めします。
MQTT サポートによって有効になっているリアルタイム データ交換パターン
- MQTT Web クライアントと Web PubSub ネイティブ クライアントの間のパブリッシュ/サブスクライブ
- MQTT Web クライアントにメッセージをブロードキャストする
- MQTT Web クライアントの有効期間イベントの通知を受信する
MQTT が Web PubSub のシステムに適応される方法
Note
このセクションは、MQTT プロトコルと Azure Web PubSub に関する基本的な知識があることを前提に書かれています。
Azure Web PubSub サービスで MQTT メッセージが認識され、ネイティブ プロトコルに変換されるようになりました。 次の表は、MQTT と Web PubSub で似ている、または同じ用語の対応を示したものです。 これは、MQTT の概念を Web PubSub の概念にどのように適応させるかを理解するのに役立ちます。 データ プレーン REST API またはクライアント イベント ハンドラーを使って MQTT Web クライアントと対話する必要がある場合に不可欠です。
| MQTT の用語 | 対応する Web PubSub の用語 | 関係 |
|---|---|---|
| サーバー/MQTT ブローカー | Web PubSub サービス | Web PubSub サービスは MQTT ブローカーとして機能して、MQTT の接続を提供します。 通常、"サーバー" という用語は、ドキュメント内の MQTT ブローカーではなくアップストリーム サーバーを指して使うことに注意してください。 |
| セッション | つながり | Web PubSub での "接続" はクライアントとサービスの間のステートフルな関係を表す論理的な概念であり、1 つの "接続" は、1 つの "セッション" に対応します。 通常、これら 2 つの単語は置き換えることができます。 |
| トピックをサブスクライブする | グループに参加する | これら 2 つのアクションは同じ効果があります。クライアントはそのトピックまたはグループからメッセージを受け取ります。 トピック名はグループ名です。 |
| トピックにメッセージをパブリッシュする | グループにメッセージを送信する | これら 2 つのアクションは同じ効果があります。そのトピックをサブスクライブしている、またはそのグループに属しているクライアントは、メッセージを受け取ります。 |
| クライアント ID | 接続 ID | "接続 ID" は、Web PubSub への "接続" を表します。 Web PubSub では、MQTT 接続の "接続 ID" として、"クライアント ID" を使います。 |