![](https://ascii.jp/img/2021/06/15/3215298/l/d020ed711a8cd140.jpg)
本記事はソラコムが提供する「SORACOM公式ブログ」に掲載された「IoT で WebSocket をもっと便利で安全に使う SORACOM Beam 新機能のご紹介」を再編集したものです。
2024 年 7 月 17 日開催の SORACOM Discovery 2024 に先駆けて、SORACOM Beam (以下 Beam) では WebSocket のサポートを 7 月 1 日よりリリースしていました。このブログでは、この Beam WebSocket の機能を解説します。Discovery 2024 の基調講演で発表されたサービスと同様に、皆さんに使っていただけると嬉しいです。
WebSocket についておさらい
WebSocket は、クライアントとサーバとの間での双方向通信を可能にする通信プロトコルです。低遅延な通信が求められるアプリケーションに適しており、例えば Web でのチャット、リアルタイムの通知、オンラインゲームなどで使われています。もし WebSocket 誕生の背景に興味があれば、Microsoft の解説が分かりやすくておすすめです
![](https://blog.soracom.com/ja-jp/wp-content/uploads/2024/08/unnamed.png)
IoTにおけるWebSocketの利用例
IoT における WebSocket の利用例として、EV 充電器で採用される OCPP が挙げられます。OCPP (Open Charge Point Protocol) は、EV 充電器と充電器管理システム間の通信プロトコルの標準で、通信に WebSocket を使用します。
![](https://blog.soracom.com/ja-jp/wp-content/uploads/2024/08/image2-1024x504-1.png)
最新の OCPP 2.0.1 に定義のある 3 つの Security Profile のうちの 1 つで TLS の使用が [強く推奨] とされています。一方で、過去から OCPP を利用している EV 充電器の中には、非 TLS での WebSocket 通信を行っているケースもあります。
データ転送サービス「SORACOM Beam」がWebSocketに対応
7 月 1 日のリリースで、SORACOM Beam は WebSocket 通信の転送に対応しました。SORACOM Beam は、IoT デバイスから SORACOM に送信されたデータを、任意のサーバーに転送するサービスです。Beam はこれまでデバイスからの UDP、TCP、HTTP 通信などの転送に対応しており、ここに WebSocket 通信の転送が追加された形です。
Beam と転送先との間の通信は Beam が暗号化するため、デバイス側で暗号化処理をしなくても安全な通信が可能です。これは今回の WebSocket 転送機能に限らない Beam の強みの 1 つです。デバイスと Beam 、Beam と転送先の間にそれぞれコネクションを確立し、それらを連結することでデバイスと転送先の間で WebSocket の通信を実現しています。
![](https://blog.soracom.com/ja-jp/wp-content/uploads/2024/08/unnamed-1.png)
先の OCPP の例で言うならば、TLS 未実装の EV 充電器で Beam の WebSocket 転送機能を利用することで、Beam が代わりに通信を暗号化して EV 充電器システムのセキュリティを向上できます。既存のシステムに SORACOM IoT SIM を追加して、システムをアップグレードできるのです。
さっそく使ってみよう
Beam の WebSocket 転送機能はとても簡単にお試しいただけます。WebSocket 接続を受け付けるサーバーをお客様自身で準備しなくても、Beam 用にソラコムが提供しているテストサーバー (beamtest.soracom.io) を WebSocket 通信の転送先として利用できます。設定方法については Users サイト HTTPS テストサーバーと WebSocket で通信する をご覧ください。
ご注意いただきたい点は、[Web サイト エントリポイント] の設定を作成することです。Beam には複数のエントリポイントがありますが、WebSocket 転送をサポートするのは [Web サイトエントリポイント] だけです。
![](https://blog.soracom.com/ja-jp/wp-content/uploads/2024/08/unnamed-2.png)
Beam 用テストサーバーとの WebSocket 接続が確立すると、WebSocket のリアルタイムな双方向通信を手元で実感できます。SORACOM IoT SIM を挿入したデバイスから打ち出したメッセージが、テストサーバーからオウム返しされる様子をぜひ体験してみてください。以下は WebSocket の CLI ツール wscat を使用した、Beam の WebSocket 転送の例です。
注意事項
WebSocket の利用による追加の料金は発生せず、従来の Beam の料金体系と同じです。デバイス Beam 間の WebSocket コネクションの確立と、Beam
転送先間の WebSocket コネクションの確立にそれぞれ 1 リクエストが発生します。詳細はサービスページをご覧ください。
ポイントは、WebSocket 確立後のメッセージはリクエスト数に含まれない点です。デバイス 転送先の間の WebSocket が疎通した後は、Beam を介したメッセージングに料金は発生しません。その意味で Beam の TCP → TCP/TCPS エントリポイントの料金体系と似ています。 なお、SORACOM Air や Arc の通信料金は別途発生します。
Beam の WebSocket 接続では、300 秒間の無通信が続くと TCP Socket がタイムアウトします。また SORACOM のメンテナンスの影響で TCP コネクションが切断される場合があります。そのため、必要であれば再接続などの実装をお勧めします。その他、詳しい説明は Users ドキュメントをご参照ください。
最後に
実はこの WebSocket 転送機能の開発は EV 充電器業界の方からのご相談から始まったものでした。既存システムの改善に SORACOM のバイ・デザインのセキュリティを役立てていただける事例であり、ソラコムの開発ポリシー「Working backwards from the customer (お客様の声から逆算して考える)」を文字通りに体現したものでもありました。
幅広い皆様の IoT プロジェクトを少しでも後押しできれば幸いです。ぜひ、Beam の WebSocket 転送をお試しください!
― ソラコム 小林 (tau)
投稿 IoT で WebSocket をもっと便利で安全に使う SORACOM Beam 新機能のご紹介 は SORACOM公式ブログ に最初に表示されました。
この連載の記事
-
第435回
デジタル
インターネットを介さずに、閉域でAmazon Monitronを利用する方法 -
第434回
デジタル
衛星通信サービス (NTN) が利用可能な planNT1 を Limited Preview で提供開始、ローコードで IoT アプリケーションを構築できる SORACOM Flux の提供を開始 07/13-07/26 -
第433回
デジタル
SORACOM Fluxで愛猫のトイレを記録する -
第432回
デジタル
薬を飲んだら褒めてくれるIoTをGoogle AppSheetと組み合わせて作ってみた【SORACOM Discovery 2024】 -
第431回
デジタル
ローコードで実装!SORACOM Fluxでソラカメ画像を使ってみよう! -
第430回
デジタル
閉域網内の双方向通信がもっと簡単に、新しいVPG Type-F2が登場しました -
第429回
デジタル
GPT-4o miniに対応!IoTアプリケーションビルダーSORACOM Flux -
第428回
デジタル
SORACOMユーザーコンソールから生成 AIへ質問できるようになりました -
第427回
デジタル
ローコードIoTアプリケーションビルダー「SORACOM Flux」登場! -
第425回
デジタル
IoT x GenAI Labによる生成AIプロジェクトの実際: 三菱電機様の場合