本記事はソラコムが提供する「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 の解説が分かりやすくておすすめです
IoTにおけるWebSocketの利用例
IoT における WebSocket の利用例として、EV 充電器で採用される OCPP が挙げられます。OCPP (Open Charge Point Protocol) は、EV 充電器と充電器管理システム間の通信プロトコルの標準で、通信に WebSocket を使用します。
最新の 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 の通信を実現しています。
先の 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 サイトエントリポイント] だけです。
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公式ブログ に最初に表示されました。
この連載の記事
-
第466回
デジタル
カメラとAIで楽器演奏シーンを簡単に残す、IoTプロトタイピングの裏側 -
第465回
デジタル
数千を超えるIoT機器を管理!生成AIで設備運用を効率化するhacomonoの挑戦 -
第464回
デジタル
SORACOMのビジネスパートナープログラムに、新たに5社の認定済パートナーが参画、SORACOM Harvest Data で日時データをタイムスタンプとして利用可能に takuyaのほぼ週刊ソラコム 08/31-09/13 -
第463回
デジタル
SORACOM Lagoon 3 の Alert rule の考え方をマスターして、最適な通知を作成 -
第462回
デジタル
LTE USB ドングル UD-USC1 を SORACOM サービスと組み合わせて利用する -
第461回
デジタル
EV充電インフラを保護する5つの方法 -
第460回
デジタル
IoT プロジェクトの課題を解決する、SORACOM サービスの活用事例 -
第459回
デジタル
ATOM Cam 2 専用 LAN アダプターを販売開始、ソラカメのクラウド録画マルチストリーミング再生機能をリリース takuyaのほぼ週刊ソラコム 08/17-08/30 -
第458回
デジタル
IoTで接続された充電ステーションがEVの普及を促進する -
第457回
デジタル
SORACOM Napterがさらに便利に!リモートアクセスの安全性と利便性を両立したWebターミナルのご紹介