Soracom

Users

ドキュメント
Home ドキュメント SORACOM Beam Getting Started

HTTPS テストサーバーと WebSocket で通信する

Beam の Web サイトエントリポイント と、ソラコムが用意する HTTPS テストサーバー を使って、Beam で WebSocket を転送する際の動作を確認してみましょう。

なお、HTTPS テストサーバーを利用する際は、特別な設定は必要ありません。ここでは、Web サイトエントリポイントの設定を追加して、デバイスから WebSocket 通信を開始します。

Unified Endpoint は Web サイトエントリポイントに対応していません

Unified Endpoint は Web サイトエントリポイントに対応していません。telnet uni.soracom.io 8023 のように Unified Endpoint にアクセスしても、接続できません。

デバイスが WebSocket 通信を行うサーバーは Web サイトエントリポイントの "/websocket"です

デバイスが WebSocket 通信を行うサーバーは、Web サイトエントリポイントの /websocket (ws://beam.soracom.io:18080/websocket) です。デバイスは、HTTPS テストサーバーの URL を意識する必要がないことがポイントです。

Web サイトエントリポイントの設定を追加する

SIM グループに Web サイトエントリポイントの設定を追加して、IoT SIM を SIM グループに所属させます。

Beam の設定はグループに対して行います

ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。

  1. SIM グループ画面で [SORACOM Beam 設定] をクリックします。

    SIM グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。

  2. [+設定を追加する][Web サイトエントリポイント] の順にクリックします。

    「SORACOM Beam - Web サイト転送設定」画面が表示されます。

  3. 以下のように設定します。

    項目
    [設定名]任意の名前を入力します。例: WebSocket
    [転送先][プロトコル]「HTTPS」を選択します。
    [転送先][ホスト名]beamtest.soracom.io を入力します。
    [転送先][ポート番号]空欄のままにします。
    [ヘッダ操作][IMSI ヘッダ]オンにします。
    [ヘッダ操作][SIM ID ヘッダ]オンにします。

    Web サイトエントリポイントの設定項目について詳しくは、Web サイトエントリポイント を参照してください。

  4. [保存] をクリックします。

  5. IoT SIM が所属するグループを切り替えます。

    IoT SIM の Beam の設定が完了しました。

デバイスで Web サイトエントリポイントとの WebSocket 通信を開始する

HTTP エントリポイントとの WebSocket 通信は、下図のように Beam を経由して、HTTPS テストサーバーに転送されます。HTTPS テストサーバーは、転送された WebSocket 通信の HTTP ヘッダーに含まれる情報を加工してレスポンスを返します。

Beam の利用料金が発生します

Beam では、リクエストを送信するとリクエスト単位で利用料金が発生します。なお、Beam には無料利用枠があるため、無料利用枠内の利用であれば、Beam 利用料金が発生しません。詳しくは、SORACOM Beam の料金プラン を参照してください。

  1. 「Web サイトエントリポイントを利用する設定を行った IoT SIM」を利用するデバイスで、ws://beam.soracom.io:18080/websocket との WebSocket 通信を開始します。

    wscat コマンドを使って WebSocket 通信を開始した例:

    $ wscat -c ws://beam.soracom.io:18080/websocket
    
    Connected (press CTRL+C to quit)
    < Hello SORACOM Beam Client IMSI:xxxxxxxxxxxxxxx SIM ID:xxxxxxxxxxxxxxx !
    > 
    

    < で始まる行が、HTTPS テストサーバーから送信された内容です。

  2. 続けて、Hello from device を入力して Enter キーを押します。

    > Hello from device
    
    < Hello from device
    > 
    

    入力した内容が、そのまま HTTPS テストサーバーから送信されます。

  3. 終了するには、Ctrl + C キーを押します。

想定通りに動作しない場合は、エラーログを確認してください。詳しくは、エラーログを確認する を参照してください。

[IMSI ヘッダ]、[SIM ID ヘッダ] をオフにすると WebSocket 通信を開始したときのレスポンスに含まれなくなります

Web サイトエントリポイントの設定を変更して [IMSI ヘッダ]、および [SIM ID ヘッダ] をオフにしてから、WebSocket 通信を開始すると、IMSI と SIM ID はレスポンスに含まれず、以下のように表示されます。

$ wscat -c ws://beam.soracom.io:18080/websocket
Connected (press CTRL+C to quit)
< Hello SORACOM Beam Client !
> 
レスポンスを生成するのは HTTPS テストサーバーです

Web サイトエントリポイントで [IMSI ヘッダ][SIM ID ヘッダ] をオンにすると、リクエストの種類 (POST リクエスト、GET リクエストなど) によらず、リクエストが Beam で転送されるときにリクエストヘッダーが追加されます。

HTTPS テストサーバーと WebSocket 通信を開始するときにリクエストヘッダー (x-soracom-sim-id: xxxxxxxxxxxxxxxxxxx など) を送信すると、HTTPS テストサーバーからのレスポンスに IMSI と SIM ID が含まれます。これは、HTTPS テストサーバーの機能です。Web サイトエントリポイントの機能ではありません。

Beam の設定を無効化する

Beam では、リクエストを送信するとリクエスト単位で利用料金が発生します。Beam を使わない場合は、エントリポイントの設定を無効化するか、IoT SIM をグループから解除してください。