MENU

Soracom

Users

MQTT エントリポイント

MQTT の Publish、Subscribe を転送先となる MQTT ブローカーに転送します。MQTT ブローカーからのメッセージの Publish もデバイスに対して転送します。

エントリポイント URL

beam.soracom.io:1883

設定項目

  • 設定名: 本設定の名前
  • 転送先
    • プロトコル: 転送先への送信プロトコル(MQTT もしくは MQTTS から選択)
    • ホスト名: 転送先の FQDN
    • ポート番号: 転送先のポート番号
    • ユーザー名: 転送先ブローカーへ送信するユーザー名(オプション)(*1)
    • パスワード: 転送先ブローカーへ送信するパスワード(オプション)(*1)
    • パススルー: ON にした場合、クライアントデバイスから送信されるユーザー名/パスワードを転送先にパススルーします
    • 証明書: クライアント証明書を送信するかどうかのフラグ
    • 認証情報: 送信するクライアント証明書
  • オプション
    • IMSI 付与: IMSI を送信するかどうかのフラグ(オンにするとトピックの末尾に、トピック名/IMSIという形式で IMSI が付与されます)。当 IMSI 付与は Publish に対応します。
    • トピック名にセッション情報を利用する: トピック名に存在するプレースホルダー( {{imsi}} / {{simId}} / {{imei}} )を各セッション情報で置換します。当プレースホルダーは Publish、Subscribe の両方に対応します。
      • {{imsi}} : IMSI で置き換えます。
      • {{simId}} : SIM ID で置き換えます。
      • {{imei}} : 通信モジュールの IMEI で置き換えます。IMEI は接続するキャリアやプランによっては取得できない場合があり、その場合は {{imei}}unknown-imei に置換します。

(*1) ユーザー名、パスワードに #{imsi}, #{imei} が含まれている場合、接続した端末の IMSI、IMEI が自動的に置換されます。

実際の利用例

Publish

mosquitto を使ってデバイスから beam へ実際に Publish してみます。

デバイス側

$ mosquitto_pub -h beam.soracom.io -p 1883 -t test -m message -d
Client mosqpub/82534-MBP sending CONNECT
Client mosqpub/82534-MBP received CONNACK
Client mosqpub/82534-MBP sending PUBLISH (d0, q0, r0, m1, 'test', ... (7 bytes))
Client mosqpub/82534-MBP sending DISCONNECT

転送先の MQTT ブローカー

1482290763: New connection from 52.198.245.54 on port 8080.
1482290763: New client connected from 52.198.245.54 as mosqpub/82534-MBP (c1, k60).
1482290763: Sending CONNACK to mosqpub/82534-MBP (0, 0)
1482290767: Received PUBLISH from mosqpub/82534-MBP (d0, q0, r0, m0, 'test/4401031********', ... (7 bytes))
1482290767: Received DISCONNECT from mosqpub/82534-MBP
1482290767: Client mosqpub/82534-MBP disconnected.

この試験では IMSI 付与をオンにしているのでトピックの末尾に IMSI が付与されているのが確認できます。 (ドキュメントに載せるため、後半 8 桁をマスクしています。)

Subscribe

mosquitto を使ってデバイスから beam へ実際に Subscribe し、転送先の MQTT ブローカーからメッセージを Publish してみます。

デバイスからの Subscribe

$ mosquitto_sub -h beam.soracom.io -p 1883 -t test -d
Client mosqsub/82586-MBP sending CONNECT
Client mosqsub/82586-MBP received CONNACK
Client mosqsub/82586-MBP sending SUBSCRIBE (Mid: 1, Topic: test, QoS: 0)
Client mosqsub/82586-MBP received SUBACK
Subscribed (mid: 1): 0

Subscribe を受ける転送先 MQTT ブローカー

1482291094: New connection from 52.198.245.54 on port 8080.
1482291094: New client connected from 52.198.245.54 as mosqsub/82586-MBP (c1, k60).
1482291094: Sending CONNACK to mosqsub/82586-MBP (0, 0)
1482291094: Received SUBSCRIBE from mosqsub/82586-MBP
1482291094:     test (QoS 0)
1482291094: mosqsub/82586-MBP 0 test
1482291094: Sending SUBACK to mosqsub/82586-MBP

MQTT ブローカーに別のクライアントからメッセージを Publish

1482291169: New connection from 127.0.0.1 on port 8080.
1482291169: New client connected from 127.0.0.1 as mosqpub/3516-ip-10-0-0- (c1, k60).
1482291169: Sending CONNACK to mosqpub/3516-ip-10-0-0- (0, 0)
1482291169: Received PUBLISH from mosqpub/3516-ip-10-0-0- (d0, q0, r0, m0, 'test', ... (7 bytes))
1482291169: Sending PUBLISH to mosqsub/82586-MBP (d0, q0, r0, m0, 'test', ... (7 bytes))
1482291169: Received DISCONNECT from mosqpub/3516-ip-10-0-0-
1482291169: Client mosqpub/3516-ip-10-0-0- disconnected.

Publish されたメッセージを Beam 経由でデバイスが受け取る様子

Client mosqsub/82586-MBP received PUBLISH (d0, q0, r0, m0, 'test', ... (7 bytes))
message

MQTT エントリポイントでの QoS, will の利用

MQTT QoS および will の扱いが更新された Beam MQTT New Version をご利用できます。

SORACOM Beam New Version では、以下の更新があります。

  • Beam MQTT エントリポイントの QoS の扱い
    • 旧バージョンにおいて QoS は 0 のみに対応していましたが、新バージョンでは転送先 MQTT ブローカーの対応状況に依存します。転送先 MQTT ブローカーが QoS1 に対応している場合、QoS1 を利用できます。
  • Beam MQTT エントリポイントの will 対応
    • 旧バージョンにおいて will に対応していませんでしたが、新バージョンでは will に対応します。

Beam MQTT New Version のご利用にあたっては、Beam MQTT のグループ設定で Option タブにある「Use new version」を ON にしてください。

MQTT エントリポイントに関する制約

制限事項と注意事項 をご確認ください。