制限事項と注意事項
SORACOM Beam には以下の制限があります。
- TCP → HTTP/HTTPS エントリポイントでは、HTTP(S)に変換時に TCP で送信したデータが分割されることがあります。大きなデータを送信する場合は、HTTP エントリポイントの利用をご検討ください。
MQTT エントリポイントに関する制約
MQTT エントリポイント には以下の制約があります。
MQTT QoS および will の扱いが更新された Beam MQTT New Version をご利用いただけます。 こちらをご確認ください。
SORACOM Beam が提供する MQTT プロトコルは MQTT v3.1.1 をベースにしていますが、以下については仕様との相違があります。
- connect について
- 旧バージョンでは will に対応していないため、will プロパティを無視します。will を使用する場合は新バージョンを使用してください。詳細は MQTT エントリポイントでの QoS, will の利用 を参照してください。
- keepalive に設定できる値は、0 または 5 以上 から 1200 以下の整数です。それ以外の値を設定した場合、connect リクエストに NOT_AUTHORIZED コードを返却します。
- SORACOM Beam は session の状態の保存を行っていませんが、MQTT ブローカーには clean session のパラメータをそのまま転送します。
- QoS について
- Option にて新バージョンを利用することで QoS 1 に対応できます。詳細は MQTT エントリポイントでの QoS, will の利用 を参照してください。
- QoS は指定された値を転送先の MQTT ブローカーに渡しますので、転送先 MQTT ブローカーの対応状況を事前にご確認ください。
- QoS 2 には対応していません。指定はできますがそれぞれの QoS レベルの保証はありません。
- 旧バージョンでは QoS 0 にのみ対応しています。
- 無通信時の切断について
- keepalive に 5 以上 1200 以下の値が設定されているとき、SORACOM Beam は keepalive の 1.5 倍の時間通信がない場合に TCP コネクションを切断します。
- keepalive が 0 に設定されている場合、SORACOM Beam は 30 分間通信がない場合に TCP コネクションを切断します。
MQTT エントリポイントに関する注意事項
- MQTT 接続中にセルラー通信のセッションが切断された場合、SORACOM Beam との TCP セッションは不通となりますが、SORACOM Beam ではそれを検知できません。
- 端末側で常時接続するユースケースの場合は、 keepalive を有効にするか、クライアント側でセルラー通信のセッション断を検知して再接続する機構の導入を強く推奨します。
keepalive に 5 以上 1200 以下の整数を指定すると、keepalive が有効となり、セッション断をサーバー側で検知できるようになります。なお、keepalive を有効にするとクライアントが指定された間隔で PINGREQ パケットを送出しますので、1 リクエストとみなされます。 - セルラー通信の切断はコンソールまたは API で SIM のセッション切断の操作を行うことで再現できます。
- 端末側で常時接続するユースケースの場合は、 keepalive を有効にするか、クライアント側でセルラー通信のセッション断を検知して再接続する機構の導入を強く推奨します。
- Azure IoT Hub, Google IoT Core, PubNub, Watson IoT Platform については、クラウド認証情報を設定することで各クラウドサービスに合わせた形式でデータを転送します。詳細は Getting Started セクションをご確認ください。
- Beam 設定にて種別を「Azure IoT Hub」または「Google IoT」 にして接続する場合はトークンの有効期限が 1 時間で失効します。Azure の場合は X.509 証明書で認証した接続 の利用も検討してください。
MQTT エントリポイントの課金に関する注意事項
SORACOM Beam は以下のメッセージをやり取りしたときに 1 リクエストとカウントします。クライアントから SORACOM Beam 間のやり取り・SORACOM Beam と接続先の MQTT サーバー間のやり取り、それぞれについてカウントされるので注意してください。
- クライアントから SORACOM Beam へ SUBSCRIBE, UNSUBSCRIBE, PUBLISH, PINGREQ が発行されたとき
- SORACOM Beam から接続先の MQTT サーバーへ SUBSCRIBE, UNSUBSCRIBE, PUBLISH, PINGREQ が発行されたとき
- 接続先の MQTT サーバーから SORACOM Beam へ PUBLISH が発行されたとき
- SORACOM Beam からクライアントへ PUBLISH が発行されたとき
また、SIM が Virtual Private Gateway に所属している場合は SORACOM Beam/Funnel/Funk の利用回数に関わらず、追加の費用は発生しません。ただし、VPG の各サイズに応じて、Beam、Funnel、Funk の合計の秒間あたりリクエストに上限があります。詳細は Virtual Private Gateway のご利用料金を参照してください。