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 の設定はグループに対して行います
ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。
SIM グループ画面で
をクリックします。SIM グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。
→ の順にクリックします。
「SORACOM Beam - Web サイト転送設定」画面が表示されます。
以下のように設定します。
項目 値 任意の名前を入力します。例: WebSocket
→ 「HTTPS」を選択します。 → beamtest.soracom.io
を入力します。→ 空欄のままにします。 → オンにします。 → オンにします。 Web サイトエントリポイントの設定項目について詳しくは、Web サイトエントリポイント を参照してください。
をクリックします。
IoT SIM の Beam の設定が完了しました。
デバイスで Web サイトエントリポイントとの WebSocket 通信を開始する
HTTP エントリポイントとの WebSocket 通信は、下図のように Beam を経由して、HTTPS テストサーバーに転送されます。HTTPS テストサーバーは、転送された WebSocket 通信の HTTP ヘッダーに含まれる情報を加工してレスポンスを返します。
Beam の利用料金が発生します
Beam では、リクエストを送信するとリクエスト単位で利用料金が発生します。なお、Beam には無料利用枠があるため、無料利用枠内の利用であれば、Beam 利用料金が発生しません。詳しくは、SORACOM Beam の料金プラン を参照してください。
「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 テストサーバーから送信された内容です。続けて、
Hello from device
を入力して Enter キーを押します。> Hello from device
< Hello from device >
入力した内容が、そのまま HTTPS テストサーバーから送信されます。
終了するには、Ctrl + C キーを押します。
想定通りに動作しない場合は、エラーログを確認してください。詳しくは、エラーログを確認する を参照してください。
[IMSI ヘッダ]、[SIM ID ヘッダ] をオフにすると WebSocket 通信を開始したときのレスポンスに含まれなくなります
Web サイトエントリポイントの設定を変更して
、および をオフにしてから、WebSocket 通信を開始すると、IMSI と SIM ID はレスポンスに含まれず、以下のように表示されます。$ wscat -c ws://beam.soracom.io:18080/websocket
Connected (press CTRL+C to quit)
< Hello SORACOM Beam Client !
>
レスポンスを生成するのは HTTPS テストサーバーです
Web サイトエントリポイントで
や をオンにすると、リクエストの種類 (POST リクエスト、GET リクエストなど) によらず、リクエストが Beam で転送されるときにリクエストヘッダーが追加されます。HTTPS テストサーバーと WebSocket 通信を開始するときにリクエストヘッダー (x-soracom-sim-id: xxxxxxxxxxxxxxxxxxx
など) を送信すると、HTTPS テストサーバーからのレスポンスに IMSI と SIM ID が含まれます。これは、HTTPS テストサーバーの機能です。Web サイトエントリポイントの機能ではありません。
Beam の設定を無効化する
Beam では、リクエストを送信するとリクエスト単位で利用料金が発生します。Beam を使わない場合は、エントリポイントの設定を無効化するか、IoT SIM をグループから解除してください。
- エントリポイントの設定を無効化する手順については、エントリポイントを無効化する を参照してください。
- IoT SIM をグループから解除 (離脱) する手順については、グループ設定を解除 (離脱) する を参照してください。