MQTT全体仕様

CloudPRNT Version MQTT における、MQTTに関する全般的な仕様を説明します。

MQTTバージョン

プリンターはV3.1.1を利用します。
CloudPRNTサーバーもV3.1.1の利用を推奨します。

QoS

プリンターが発行するメッセージはQoS1を指定します。
CloudPRNTサーバーが発行するメッセージもQoS1を指定することを推奨します。

MQTTブローカー接続の認証

プリンターは、User NameとPasswordを利用してMQTTブローカーに接続することができます。
プリンターが利用するUser NameとPasswordは、サーバー設定情報取得リクエスト (GET) のサーバーレスポンスにより指定が可能です。
クライアント証明書には対応しておりません。

MQTTメッセージの重複受信について

MQTTを利用するため、プリンターはCloudPRNTサーバーからのメッセージを重複して受信する可能性があります。
request-client-status メッセージ等の重複は問題となりませんが、print-job メッセージの場合、意図しない印刷の重複が発生する懸念があります。
意図しない重複印刷を防ぐため、print-job メッセージのペイロードJSON中にはjobTokenキーが定義されています。
プリンターは過去10件分のjobTokenを記憶します。
同じjobTokenが指定された print-job メッセージを受け取った場合、「jobTokenが重複しているメッセージを受け取ったため、印刷しない」ことを表す プリンターステータスコード を含む print-result メッセージを発行します。

Last Will and Testament

プリンターはMQTTブローカー接続時にWillを登録します。
また対応プリンターでは、電源OFF時に、登録したWillと同じフォーマットのメッセージを発行してからブローカーとの切断を行います。
そのため、CloudPRNTサーバーはWillメッセージを処理することにより、プリンターがネットワークから切断されたことを確認できます。
詳細は client-will メッセージの仕様をご確認ください。

重要

CloudPRNT Version MQTT (Trigger POST) の場合、プリンターはMQTTメッセージを発行しないため、Willの登録も行いません。

Retain

プリンターが発行するメッセージはRetainを利用しません。