# サブスクリプション管理

このページでは、EMQX ダッシュボードでクライアントのサブスクリプションおよび接続されているトピックの確認方法について説明します。

## サブスクリプション

サブスクリプションページでは、接続ごとにサブスクライブされているすべてのトピックをクライアントIDとトピックでマッピングして表示します。各サブスクリプションの基本情報として、クライアントID、トピック、QoSが確認できます。さらに、MQTT v5でサポートされている新しいサブスクリプション機能もリストに含まれています。

- **No Local**: MQTT v3.1.1では、自分がパブリッシュしたトピックをサブスクライブしている場合、自分自身のメッセージも受信します。MQTT v5では、このオプションを`1`に設定すると、サーバーが自分のパブリッシュメッセージを自身に転送するのを防ぎます。
- **Retain as Published**: このオプションは、サーバーがクライアントにメッセージを転送する際にRETAINフラグを保持するかどうかを指定します。ただし、これは保持メッセージのRETAINフラグには影響しません。したがって、Retain As Publishが`0`に設定されている場合、クライアントはメッセージのRETAINフラグのみで通常のパブリッシュメッセージか保持メッセージかを判断します。
- **Retain Handling**: このオプションは、サーバーがサブスクライブ時に保持メッセージをクライアントに送信するタイミングを指定します。
  - Retain Handlingが`0`の場合：クライアントがサブスクライブに成功するとすぐに保持メッセージを送信します。
  - Retain Handlingが`1`の場合：このサブスクリプションが以前に存在しなかった場合のみ保持メッセージを送信します。
  - Retain Handlingが`2`の場合：サブスクリプションの状態に関わらず保持メッセージを送信しません。

画面上部の検索バーにはデフォルトで3つのフィルター項目（Node、Client ID、Topic）が表示されます。Nodeはドロップダウン選択ボックスで、特定のノードに接続しているクライアントでフィルタリング可能です。Client IDとTopicはサブスクリプションリスト内のあいまい検索に使用できます。検索バー右の矢印ボタンをクリックすると、QoSおよびShared Nameのフィルター入力欄も表示され、[Shared Name](../../messaging/mqtt-shared-subscription.md)の厳密なマッチングに対応しています。

<img src="./assets/subscriptions.png" alt="サブスクリプション" style="zoom:50%;" />

## トピック

トピックページでは、複数ノードにまたがる接続でサブスクライブされているすべてのトピックを表示します。同一ノード内で異なる接続が同じトピックをサブスクライブしている場合は重複排除が行われます。ユーザーはトピックに基づくあいまい検索でリストを絞り込むことができます。

> 注意：サブスクリプションリストはクライアント単位ですが、トピックリストは現在サブスクライブされているすべてのトピックを表示します。同じトピックが異なるクライアントによってサブスクライブされている場合があります。

「アクション」列の**Create Monitor**をクリックすると、**診断** -> **トピックメトリクス**ページに遷移します。ここで特定のトピックに対するメッセージ数やレートなどの[トピックメトリクス](../../observability/topic-metrics.md)を作成して監視できます。

<img src="./assets/topics.png" alt="トピック" style="zoom:50%;" />
