すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for MQTT:トピックエイリアス

最終更新日:Jan 14, 2025

このトピックでは、Message Queuing Telemetry Transport(MQTT)5.0 のトピックエイリアス機能について説明します。

機能の説明

トピックエイリアスは、MQTT 5.0 で導入された新機能です。この機能を使用すると、短い整数値を使用して、クライアントとブローカー間の通信のトピックパスを置き換えることができます。これにより、送信負荷と帯域幅の消費が削減され、送信効率が向上します。

制限事項

  • サーバーでは、接続ごとに最大 30 個のトピックエイリアスがサポートされています。クライアントからサーバーに送信されるメッセージのトピックエイリアスの数が 30 を超えると、接続が閉じられ、トピック名エラーが報告されます。

  • クライアントは、接続ごとにサーバーに対して最大 30 個のサポートされているトピックエイリアスを宣言できます。宣言されたトピックエイリアスの数が 30 を超えると、サーバーがクライアントにメッセージをプッシュするときにトピックエイリアスは指定されません。

  • 各トピックエイリアスは一意である必要があり、接続内のトピックに対応している必要があります。

  • トピックエイリアスとトピック間のマッピングは、現在の接続に対してのみ有効です。切断後に確立された新しい接続のトピックエイリアスは異なる場合があります。

使用上の注意

  • Topic Alias パラメーターに 0 の値を指定することはできません。

  • クライアントの PUBLISH パケットの Topic Alias パラメーターに指定する値は、サーバーの CONNACK パケットで返される Topic Alias Maximum パラメーターの値より大きくすることはできません。CONNECT パケットで指定する Topic Alias パラメーターの値が 0 より大きく、Topic Alias Maximum パラメーターの値以下である場合、クライアントはすべてのトピックエイリアスを受け入れる必要があります。

  • クライアントのトピックエイリアスマッピングは、サーバーのトピックエイリアスマッピングと同じではない場合があります。たとえば、クライアントの PUBLISH パケットのトピックエイリアス 1 とサーバーの PUBLISH パケットのトピックエイリアス 1 は、異なるトピックに対応している場合があります。

シナリオ

  • 帯域幅の制限: デバイスのネットワーク帯域幅が制限されている場合は、トピックエイリアス機能を使用して、メッセージの送信に必要なデータ量を削減できます。

  • 高頻度のメッセージパブリッシング: クライアントが同じトピックに頻繁にメッセージをパブリッシュする場合、トピックエイリアス機能を使用して、送信される冗長メッセージの数を減らすことができます。たとえば、毎秒多数のメッセージが送信される株式市場追跡システムやモノのインターネット(IoT)データ収集システムでこの機能を使用できます。

  • 省電力: リモート監視サイトやモバイルデバイスなどのバッテリー駆動デバイスの場合、トピックエイリアス機能は、無線ネットワーク経由で送信されるデータ量を削減するのに役立ちます。これにより、デバイスのバッテリー寿命を延ばすことができます。

  • リソース制限のあるデバイス: ハードウェアリソースが制限されている組み込みデバイスや IoT デバイスの場合、短いトピックエイリアスは、メッセージ処理の高速化とメモリ消費量の削減に役立ちます。

MQTT 5.0 のトピックエイリアス機能は、さまざまなシナリオでメッセージ送信とネットワーク環境を最適化し、IoT デバイスとリアルタイム通信アプリケーションの効率と柔軟性を向上させます。

home/groundfloor/livingroom/temperature という名前のトピックにトピックエイリアス 1 を割り当てます。後続のメッセージングプロセスでは、1 だけを参照する必要があります。

最初の PUBLISH パケットのサンプルコード:

Topic Name: home/groundfloor/livingroom/temperature
Topic Alias: 1
Payload: 22°C

後続の PUBLISH パケットのサンプルコード:

Topic Alias: 1
Payload: 23°C

上記の例では、トピックエイリアス機能を使用した後、後続の PUBLISH パケットに完全なトピック名を含める必要がなくなります。