本記事はソラコムが提供する「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公式ブログ に最初に表示されました。
この連載の記事
-
第484回
デジタル
AWS re:Invent 2024に見る、IoTの成熟と生成AIとの融合 -
第483回
デジタル
二歳半の子供を持つエンジニアの一日の働き方 -
第482回
デジタル
VPN 対応の産業用 LTE ルーターの価格改定【30%オフ】 -
第481回
デジタル
時間帯に応じたメール通知の構築方法 : SORACOM LTE-M Button と SORACOM Flux の活用 -
第480回
デジタル
SORACOM Flux 料金プランを発表しました -
第479回
デジタル
12/11-13 商業施設・店舗DX展に出展:最新IoTソリューションや事例をご紹介 -
第478回
デジタル
コープさっぽろが、クラウド型カメラ「ソラカメ」を全店舗で導入、現場主導の改善を実現、サーバールームの異常な温度上昇を通知する新規掲載レシピ takuyaのほぼ週刊ソラコム 11/16-11/29 -
第476回
デジタル
WebRTCとMedia over QUIC Transportの性能比較 -
第475回
デジタル
SORACOM Lagoon 3 の [Math] 機能で、複数データを組み合わせた通知の手順 -
第474回
デジタル
SORACOM Flux の AI アクションに Amazon Bedrock – Anthropic Claude 3.5 Haiku を追加、Teltonika RUT240 の価格を改訂 takuyaのほぼ週刊ソラコム 11/02-11/15