raspiにスマートリモコン&メディアプレイヤーをのせてみた④


はじめに

こちらのウェブサーバの解説です。

概要

ウェブサーバで以下の機能を提供

  • スマホからのビデオファイルをファイルサーバに転送
  • ファイルサーバからのビデオファイル一覧をスマホに転送
  • スマホからのメディア操作をメディアサーバに転送
  • メディアサーバからの再生位置をスマホに転送
  • 家電操作情報(エアコンの気温など)をデバイスサーバに転送
  • デバイスサーバからの家電操作情報(エアコンの気温など)をスマホに転送

サーバ内の各層の機能概要

infrastructure

  • grpc
    • 他の機能との共通コンテンツの受信や送信
    • バイナリ(wsでpostされたファイル)をstreamでファイルサーバに送信
  • ws
    • echoとwebSocketで構成
    • webSocketでブラウザへの送信はチャンネルを使う
    • GET:indexとPOST:fileはrestで受信、それ以外はwebSocket上で受信
    • POST:fileはinfrastructure内でバイナリ変換後controllerに渡す
  • network
    • WiFiのlocalアドレスを取得

adapter

共通設計参照

useCase

共通設計参照

domain

  • webSocketで受け取ったデータを元に宛先サーバの判別
    • ファイルサーバ
    • メディアサーバ
    • デバイスサーバ

リンク

ソースコード

こちら参照

セットアップ

こちら参照

共通設計

こちら参照

サーバ

以下参照
ファイルサーバ
メディアサーバ
デバイスサーバ

ブラウザ

こちら参照