コンテンツにスキップ

コンポーネント

リアルタイム連携(Socket.IO)まわりの 端末内コンポーネントをまとめます。
現状は クラウド↔端末ブリッジ端末内(ローカル)ブリッジ の2系統です。

サマリー

コンポーネント 役割 / 概要 主な入出力 ドキュメント
Cloud Socket 端末→クラウドの Socket.IO クライアント。接続時に registerDevice、5秒ごとに DNSオンライン監視 & ローカルIP再登録。各種イベントを受信して端末内へ橋渡し 受信(cloud→device):Device / Config / System / Media / Playlist / View / Misc の各イベント。送信:registerDevice / 各種応答 cloud-socket.md
Local Socket 端末内の Socket.IO サーバ(ioLocal)//admin NS を運用し、setVolume / toggleVolume 等を ローカル↔クラウドにブリッジ 受信:/admin or ioCloud のイベント。送出://adminioCloud? に forward local-socket.md

クラウドソケット(cloud-socket)

  • 接続SERVER_URL/socket.iowebsocket 固定)
  • 接続時registerDevice(DEVICE_ID)safeRegisterLocalIp(DEVICE_ID)
  • 定期(5s)dns.resolve('google.com') でオンライン監視+ローカルIP再登録
  • イベント群:Device / Config / System / Media / Playlist / View / Misc
  • クリーンアップcleanup() で interval 停止&ソケット close

ローカルソケット(local-socket)

  • ネームスペース/(既定)・/admin(管理UI)
  • ブリッジsetVolume / toggleVolumeforward()//adminioCloud? に多方向配信
  • クラウド連携ioCloud があれば同名イベントを受け取りローカルへ中継

運用上の注意

  • ループ防止:Cloud と Local で同名イベントを相互転送する場合は、起点フラグやイベント名の分離を検討してください。
  • 認証/認可/admin など管理系 NS はトークン等で保護することを推奨します。
  • ログ量:Cloud Socket の 5秒周期ログはローテーション前提で設計してください。