Skip to content

Clients API

このAPIドキュメントは、MQTTクライアントの管理に関するさまざまな操作についての情報を提供します。クライアント情報の閲覧、クライアントのトピックへのサブスクライブおよびサブスクライブ解除、クライアントのキックなどが含まれます。

すべてのクライアントの表示

URI

GET /clients

クラスター内のすべてのクライアント情報を返し、ページネーションに対応しています。

クエリパラメータ:

パラメータ説明
_pageIntegerページ番号
_limitInteger1ページあたりのデータ件数
clientidStringクライアント識別子
usernameStringクライアントのユーザー名
zoneStringクライアントの設定グループ名
ip_addressStringクライアントのIPアドレス
conn_stateEnumクライアントの現在の接続状態。connectedidledisconnectedのいずれか
clean_startBoolクライアントがクリーンセッションを使用しているかどうか
proto_nameEnumクライアントのプロトコル名。MQTTCoAPMQTT-SNのいずれか
proto_verIntegerクライアントのプロトコルバージョン
_gte_created_atIntegerクライアントセッション作成時刻(以上)
_lte_created_atIntegerクライアントセッション作成時刻(以下)
_gte_connected_atIntegerクライアント接続作成時刻(以上)
_lte_connected_atIntegerクライアント接続作成時刻(以下)

リクエストメッセージ

なし

レスポンスメッセージ

名前説明
dataオブジェクト配列すべてのクライアントの情報
data[].nodeStringクライアントが接続しているノード
data[].clientidStringクライアント識別子
data[].usernameStringクライアント接続時に使用したユーザー名
data[].proto_nameStringクライアントのプロトコル名
data[].proto_verIntegerクライアントのプロトコルバージョン
data[].ip_addressStringクライアントのIPアドレス
data[].portIntegerクライアントのポート番号
data[].is_bridgeBooleanクライアントがブリッジ経由で接続されているかどうか
data[].connected_atStringクライアント接続時刻("YYYY-MM-DD HH:mm:ss"形式)
data[].disconnected_atStringクライアント切断時刻("YYYY-MM-DD HH:mm:ss"形式)。connectedfalseの場合のみ返される
data[].connectedBooleanクライアントが接続状態かどうか
data[].zoneStringクライアントが使用している設定グループ
data[].keepaliveIntegerキープアライブ時間(秒)
data[].clean_startBooleanクライアントがクリーンセッションを使用しているかどうか
data[].expiry_intervalIntegerセッションの有効期限間隔(秒)
data[].created_atStringセッション作成時刻("YYYY-MM-DD HH:mm:ss"形式)
data[].subscriptions_cntIntegerクライアントが確立しているサブスクリプション数
data[].max_subscriptionsIntegerクライアントに許可されている最大サブスクリプション数
data[].inflightInteger現在のインフライトキューの長さ
data[].max_inflightIntegerインフライトキューの最大長さ
data[].mqueue_lenInteger現在のメッセージキューの長さ
data[].max_mqueueIntegerメッセージキューの最大長さ
data[].mqueue_droppedIntegerキュー長超過により破棄されたメッセージ数
data[].awaiting_relInteger未確認のPUBRECメッセージ数
data[].max_awaiting_relInteger許可されている未確認PUBRECメッセージの最大数
data[].recv_octIntegerEMQXブローカーが受信したバイト数
data[].recv_cntInteger受信したTCPメッセージ数
data[].recv_pktInteger受信したMQTTメッセージ数
data[].recv_msgInteger受信したPUBLISHメッセージ数
data[].send_octInteger送信したバイト数
data[].send_cntInteger送信したTCPメッセージ数
data[].send_pktInteger送信したMQTTメッセージ数
data[].send_msgInteger送信したPUBLISHメッセージ数
data[].mailbox_lenIntegerプロセスのメールボックスサイズ
data[].heap_sizeIntegerプロセスのヒープサイズ(バイト)
data[].reductionsIntegerErlangのリダクションカウント
metaオブジェクトページネーション情報
meta.pageIntegerページ番号
meta.limitInteger1ページあたりのデータ件数
meta.countIntegerデータの総件数

リクエスト例

bash
curl -u app_id:app_secret -X GET {api}/clients?_page=1&_limit=50

レスポンス例

json
{
  "meta": {
    "page": 1,
    "limit": 50,
    "hasnext": false,
    "count": 1
  },
  "data": [
    {
        "peersni": "qe92461d.dev-ala.cn-hangzhou.mqttce.com",
        "reductions": 10276,
        "expiry_interval": 0,
        "clean_start": true,
        "send_msg.dropped.expired": 0,
        "recv_msg.qos0": 3,
        "mqueue_dropped": 0,
        "recv_cnt": 9,
        "send_cnt": 3,
        "keepalive": 60,
        "recv_oct": 257,
        "heap_size": 987,
        "recv_pkt": 6,
        "recv_msg.dropped.await_pubrel_timeout": 0,
        "proto_ver": 5,
        "inflight_max": 32,
        "send_msg.dropped": 0,
        "created_at": "2023-09-15T09:36:20.871+00:00",
        "awaiting_rel_max": 100,
        "inflight_cnt": 0,
        "ip_address": "115.236.21.86",
        "mqueue_len": 0,
        "send_msg.qos2": 0,
        "send_pkt": 3,
        "subscriptions_cnt": 0,
        "send_msg.dropped.too_large": 0,
        "recv_msg": 3,
        "send_msg.dropped.queue_full": 0,
        "send_msg": 0,
        "node": "emqxsl-dev@10.66.128.31",
        "awaiting_rel_cnt": 0,
        "listener": "tcp:default",
        "connected": true,
        "username": "aip_user2",
        "recv_msg.qos1": 0,
        "proto_name": "MQTT",
        "port": 13312,
        "send_msg.qos1": 0,
        "is_persistent": false,
        "enable_authn": true,
        "mailbox_len": 0,
        "subscriptions_max": 10,
        "recv_msg.qos2": 0,
        "connected_at": "2023-09-15T09:36:20.871+00:00",
        "tenant_id_from": "peersni",
        "is_bridge": false,
        "clientid": "mqttx_07cb8109",
        "send_oct": 25,
        "send_msg.qos0": 0,
        "mqueue_max": 1000,
        "cn": null,
        "recv_msg.dropped": 0,
        "dn": null
    }
  ]
}

特定クライアントの情報表示

URI

GET /clients/{clientid}

特定のクライアントの情報を返します。

パラメータ:

パラメータ説明
clientidStringクライアントID

リクエストメッセージ

なし

レスポンスメッセージ

名前説明
dataオブジェクト配列クライアントの情報

リクエスト例

特定クライアントの問い合わせ

bash
curl -u app_id:app_ssecret -X GET {api}/clients/client_1

レスポンス例

json
// HTTPステータスコード
200
// HTTPレスポンスボディ
{
    "peersni": "qe92461d.dev-ala.cn-hangzhou.mqttce.com",
    "reductions": 21041,
    "expiry_interval": 0,
    "clean_start": true,
    "send_msg.dropped.expired": 0,
    "recv_msg.qos0": 5,
    "mqueue_dropped": 0,
    "recv_cnt": 18,
    "send_cnt": 10,
    "keepalive": 60,
    "recv_oct": 361,
    "heap_size": 987,
    "recv_pkt": 15,
    "recv_msg.dropped.await_pubrel_timeout": 0,
    "proto_ver": 5,
    "inflight_max": 32,
    "send_msg.dropped": 0,
    "created_at": "2023-09-15T09:36:20.871+00:00",
    "awaiting_rel_max": 100,
    "inflight_cnt": 0,
    "ip_address": "115.236.21.86",
    "mqueue_len": 0,
    "send_msg.qos2": 0,
    "send_pkt": 10,
    "subscriptions_cnt": 0,
    "send_msg.dropped.too_large": 0,
    "recv_msg": 5,
    "send_msg.dropped.queue_full": 0,
    "send_msg": 0,
    "node": "emqxsl-dev@10.66.128.31",
    "awaiting_rel_cnt": 0,
    "listener": "tcp:default",
    "connected": true,
    "username": "aip_user2",
    "recv_msg.qos1": 0,
    "proto_name": "MQTT",
    "port": 13312,
    "send_msg.qos1": 0,
    "is_persistent": false,
    "enable_authn": true,
    "mailbox_len": 0,
    "subscriptions_max": 10,
    "recv_msg.qos2": 0,
    "connected_at": "2023-09-15T09:36:20.871+00:00",
    "tenant_id_from": "peersni",
    "is_bridge": false,
    "clientid": "mqttx_07cb8109",
    "send_oct": 39,
    "send_msg.qos0": 0,
    "mqueue_max": 1000,
    "cn": null,
    "recv_msg.dropped": 0,
    "dn": null
}

クライアントのキック

URI

DELETE /clients/{clientid}

特定のクライアントを強制切断します。クライアントをキックすると、接続とセッションの両方が終了します。

リクエストメッセージ

なし

レスポンスメッセージ

ステータスコード

リクエスト例

bash
curl -u app_id:app_secret -X DELETE {api}/clients/client_1

レスポンス例

http
// HTTPステータスコード
204

クライアントを特定のトピックにサブスクライブさせる

URI

POST /clients/{client_id}/subscribe

リクエストメッセージ

名前説明
topicStringサブスクライブするトピック
qosIntegerQoS(サービス品質)レベル
nlIntegerNo Local
rapIntegerRetain as Published
rhIntegerRetain Handling

レスポンスメッセージ

名前説明
clientidStringクライアントID
topicStringサブスクライブしたトピック
qosIntegerQoS(サービス品質)レベル
nodeStringノード情報
nlIntegerNo Local
rapIntegerRetain as Published
rhIntegerRetain Handling

リクエスト例

bash
curl -u app_id:app_secret -X POST -H 'Content-Type: application/json' -d '{"topic": "t/a","qos": 1}' {api}/clients/client_1/subscribe

レスポンス例

json
// HTTPステータスコード
200
// HTTPレスポンスボディ
{
  "clientid": "client_1",
  "topic": "t/a",
  "qos": 1,
  "nl": 0,
  "node": "emqxsl-dev@10.66.128.31",
  "qos": 0,
  "rap": 0,
  "rh": 0,
}

クライアントの特定トピックからのサブスクライブ解除

URI

POST /clients/{client_id}/unsubscribe

リクエストメッセージ

名前説明
topicStringサブスクライブ解除するトピック

レスポンスメッセージ

ステータスコード

リクエスト例

bash
curl -u app_id:app_secret -X POST -H 'Content-Type: application/json' -d '{"topic": "t/a"}' {api}/clients/client_1/unsubscribe'

レスポンス例

http
// HTTPステータスコード
204

クライアントの複数トピック一括サブスクライブ

URI

POST /clients/{client_id}/subscribe/bulk

リクエストメッセージ

名前説明
[].topicStringサブスクライブするトピックのリスト
[].qosIntegerQoS(サービス品質)レベルのリスト

レスポンスメッセージ

名前説明
dataオブジェクト配列すべてのトピックのサブスクリプション情報
data[].clientidStringクライアントID
data[].topicStringサブスクライブしたトピック

リクエスト例

bash
curl -u app_id:app_secret -X POST -H 'Content-Type: application/json' -d '[{"topic": "t/a", "qos": 1}, {"topic": "t/b", "qos": 0}]' {api}/clients/client_1/subscribe/bulk

レスポンス例

json
// HTTPステータスコード
200
// HTTPレスポンスボディ
{
    "data": [
        {
            "topic": "t/a",
            "clientid": "client_1",
            "nl": 0,
            "node": "emqxsl-dev@10.66.128.31",
            "qos": 1,
            "rap": 0,
            "rh": 0,
        },
        {
            "topic": "t/b",
            "clientid": "client_1",
            "nl": 0,
            "node": "emqxsl-dev@10.66.128.31",
            "qos": 0,
            "rap": 0,
            "rh": 0,
        }
    ]
}

クライアントの複数トピック一括サブスクライブ解除

URI

POST /clients/{client_id}/unsubscribe/bulk

リクエストメッセージ

名前説明
[].topicStringサブスクライブ解除するトピックのリスト

レスポンスメッセージ

ステータスコード

リクエスト例

bash
curl -u app_id:app_secret -X POST -H 'Content-Type: application/json' -d '[{"topic": "t/a"},{"topic": "t/b"}]' {api}/clients/client_1/unsubscribe/bulk

レスポンス例

http
// HTTPステータスコード
204