CoAP クライアント接続ガイド
接続の作成
Connection Mode でのみ利用可能です。
このインターフェースは、CoAP ゲートウェイへのクライアント接続を作成するために使用します。CoAP ゲートウェイの認証が有効になっている場合、ゲートウェイはこのリクエストで提供された clientid、username、および password を検証し、不正なユーザーを防止します。
リクエストパラメータ:
- メソッド:
POST - URI:
mqtt/connection{?QueryString*}、QueryStringは以下の通りです:clientid: 必須パラメータ、UTF-8 文字列。ゲートウェイはこの文字列を接続の一意識別子として使用します。username: 任意パラメータ、UTF-8 文字列。接続認証に使用します。password: 任意パラメータ、UTF-8 文字列。接続認証に使用します。
- ペイロード: 空
レスポンス:
- 戻りコード:
2.01: 接続が正常に作成されました。この接続のトークン文字列がメッセージ本文に返されます。4.00: 不正なリクエスト。詳細なエラー情報がメッセージ本文に返されます。4.01: 認可されていません。リクエスト形式は検証されましたが、認可に失敗しました。
- ペイロード: 戻りコードが
2.01の場合はメッセージ本文がToken、それ以外はErrorMessageです。Token: 以降のリクエストで使用するトークン文字列。ErrorMessage: エラーの説明メッセージ。
libcoap の例:
# clientid=123、username/password=admin/public で接続を作成
# Token: 3404490787 が返される
coap-client -m post -e "" "coap://${your-deployment-connection-address}/mqtt/connection?clientid=123&username=admin&password=public"
3404490787TIP
接続が正常に作成されると、対応するデプロイメントの CoAP ゲートウェイページのクライアントリストで確認できます。
接続の切断
Connection Mode でのみ利用可能です。
このインターフェースは、CoAP 接続を切断するために使用します。
リクエストパラメータ:
- メソッド:
DELETE - URI:
mqtt/connection{?QueryString*}、QueryStringは以下の通りです:clientid: 必須パラメータ、UTF-8 文字列。ゲートウェイはこの文字列を接続の一意識別子として使用します。token: 必須パラメータ。接続作成リクエストで返されたトークン文字列を使用します。
- ペイロード: 空
レスポンス:
- 戻りコード:
2.01: 接続が正常に切断されました。4.00: 不正なリクエスト。詳細なエラー情報がメッセージ本文に返されます。4.01: 認可されていません。リクエスト形式は検証されましたが、認可に失敗しました。
- ペイロード: 戻りコードが
2.01の場合はメッセージ本文がToken、それ以外はErrorMessageです。
例:
coap-client -m delete -e "" "coap://${your-deployment-connection-address}/mqtt/connection?clientid=123&token=3404490787"ハートビート
Connection Mode でのみ利用可能です。
このインターフェースは、CoAP クライアントとゲートウェイ間の接続維持に使用します。ハートビートが期限切れになると、ゲートウェイはセッションとサブスクリプションを削除し、そのクライアントのすべてのリソースを解放します。
リクエストパラメータ:
- メソッド:
PUT - URI:
mqtt/connection{?QueryString*}、QueryStringは以下の通りです:clientid: 必須パラメータ、UTF-8 文字列。ゲートウェイはこの文字列を接続の一意識別子として使用します。token: 必須パラメータ。接続作成リクエストで返されたトークン文字列を使用します。
- ペイロード: 空
レスポンス:
- 戻りコード:
2.01: 接続が正常に維持されました。4.00: 不正なリクエスト。詳細なエラー情報がメッセージ本文に返されます。4.01: 認可されていません。リクエスト形式は検証されましたが、認可に失敗しました。
- ペイロード: 戻りコードが
2.01の場合はメッセージ本文がToken、それ以外はErrorMessageです。
例:
coap-client -m put -e "" "coap://${your-deployment-connection-address}/mqtt/connection?clientid=123&token=3404490787"TIP
ハートビート間隔は CoAP ゲートウェイ設定の heartbeat オプションで設定されており、デフォルトは 30 秒です。
メッセージのパブリッシュ
このインターフェースは、CoAP クライアントが指定されたトピックにメッセージをパブリッシュするために使用します。Connection Mode が有効な場合は追加の識別情報を付加する必要があります。
リクエストパラメータ:
- メソッド:
POST - URI:
ps/{+topic}{?QueryString*}{+topic}はパブリッシュするメッセージのトピックです。例えばcoap/testにパブリッシュする場合、URI はps/coap/testとなります。{?QueryString}はリクエストパラメータ:clientid:Connection Modeでは必須、Connectionless Modeでは任意。token:Connection Modeのみ必須パラメータ。retain(任意): リテインメッセージとしてパブリッシュするかどうか。ブール値で、デフォルトはfalse。qos: メッセージの QoS(サービス品質)レベル。MQTT クライアントがメッセージを受信する方法にのみ影響します。0、1、2の列挙値。expiry: メッセージの有効期限(秒単位)。デフォルトは 0(期限なし)。
- ペイロード: メッセージのペイロード
レスポンス:
- 戻りコード:
2.04: パブリッシュ成功4.00: 不正なリクエスト。詳細なエラー情報がメッセージ本文に返されます。4.01: 認可されていません。リクエスト形式は検証されましたが、認可に失敗しました。
- ペイロード: 戻りコードが
2.04の場合はメッセージ本文は空、それ以外はErrorMessageです。
例:Connectionless Mode でメッセージをパブリッシュする場合:
coap-client -m post -e "Hi, this is libcoap" "coap://${your-deployment-connection-address}/ps/coap/test"または、Connection Mode で clientid と token を付加してパブリッシュする場合:
coap-client -m post -e "Hi, this is libcoap" "coap://${your-deployment-connection-address}/ps/coap/test?clientid=123&token=3404490787"トピックのサブスクライブ
このインターフェースは、CoAP クライアントがトピックをサブスクライブするために使用します。Connection Mode が有効な場合は追加の識別情報を付加する必要があります。
リクエストパラメータ:
- メソッド:
GET - オプション:
observerを0に設定 - URI:
ps/{+topic}{?QueryString*}{+topic}はサブスクライブするトピックです。例えばcoap/testをサブスクライブする場合、URI はps/coap/testとなります。{?QueryString}はリクエストパラメータ:clientid:Connection Modeでは必須、Connectionless Modeでは任意。token:Connection Modeのみ必須パラメータ。qos: サブスクライブの QoS で、ゲートウェイが CoAP クライアントにメッセージを配信する際に使用する MessageType(CONまたはNON)を示します。以下の列挙値があります:0:NONメッセージを使用して配信1または2:CONメッセージを使用して配信
- ペイロード: 空
レスポンス:
- 戻りコード:
2.05: サブスクライブ成功4.00: 不正なリクエスト。詳細なエラー情報がメッセージ本文に返されます。4.01: 認可されていません。リクエスト形式は検証されましたが、認可に失敗しました。
- ペイロード: 戻りコードが
2.05の場合はメッセージ本文は空、それ以外はErrorMessageです。
例:Connectionless Mode で coap/test をサブスクライブする場合:
coap-client -m get -s 60 -O 6,0x00 -o - -T "obstoken" "coap://${your-deployment-connection-address}/ps/coap/test"または、Connection Mode で clientid と token を付加してサブスクライブする場合:
coap-client -m get -s 60 -O 6,0x00 -o - -T "obstoken" "coap://${your-deployment-connection-address}/ps/coap/test?clientid=123&token=3404490787"トピックのサブスクライブ解除
このインターフェースは、CoAP クライアントがトピックのサブスクライブを解除するために使用します。
現在の実装では、サブスクライブ解除操作は Connection Mode のみで利用可能です。
リクエストパラメータ:
- メソッド:
GET - URI:
ps/{+topic}{?QueryString*}{+topic}はサブスクライブ解除するトピックです。例えばcoap/testのサブスクライブを解除する場合、URI はps/coap/testとなります。{?QueryString}はリクエストパラメータ:clientid:Connection Modeでは必須、Connectionless Modeでは任意。token:Connection Modeのみ必須パラメータ。
- ペイロード: 空
レスポンス:
- 戻りコード:
2.07: サブスクライブ解除成功4.00: 不正なリクエスト。詳細なエラー情報がメッセージ本文に返されます。4.01: 認可されていません。リクエスト形式は検証されましたが、認可に失敗しました。
- ペイロード: 戻りコードが
2.07の場合はメッセージ本文は空、それ以外はErrorMessageです。
例:Connection Mode で coap/test のサブスクライブを解除する場合:
coap-client -m get -O 6,0x01 "coap://${your-deployment-connection-address}/ps/coap/test?clientid=123&token=3404490787"短縮パラメータ名
メッセージサイズを削減するために、CoAP ゲートウェイは短縮パラメータ名をサポートしています。例えば、パラメータ clientid=barx は c=bar と書くことができます。サポートされている短縮パラメータ名は以下の表の通りです。
| パラメータ名 | 短縮名 |
|---|---|
clientid | c |
username | u |
password | p |
token | t |
qos | q |
retain | r |