[解決済み] ライブオーディオストリーミング用Webアプリのアーキテクチャ
2022-03-12 22:58:50
質問
ライブオーディオストリーミングアプリのアーキテクチャについてご意見をお聞かせください。
現在、ローカルネットワーク上でテストしており、すべてがうまくいっているように見えますが、本番でどの程度うまくいくのか疑問があります。
私のアーキテクチャ
1 2
Broadcaster HTTP client ---> App Server ---> Listening clients (React.js App)
1
- HTTPで通信する。
2
- HTTPとWebSocketによる通信
やりたいこと
- ユーザーが私のReactアプリを開き、Broadcasterがまだストリーミングされていない場合、Reactは"OFFLINE"のようなものを表示する必要があります。
- 次に、BroadcasterがApp Serverへのストリーミングを開始すると、React Appは"The stream is started"と表示し、自動的に再生を開始する必要があります。
- 最後に、Broadcasterがストリーミングを停止すると、React Appは再び"OFFLINE"を表示する必要があります。
現在私が行っている方法 私のアプリサーバーは、2つのプロトコルを使用しています。HTTP(オーディオストリーミングなど)とWebSocket(サーバーで発生したことのJSONステータスメッセージを送信するためだけ)です。
-
The BroadcasterがApp Serverへのストリーミングを開始すると(HTTP経由)、App ServerはReact AppにWebSocketメッセージを送信します。
http://my-domain/stream
つまり、アプリサーバは通常のHTTPでReactに音声をストリーミングしているのです。 -
Reactアプリはこのメッセージを見て、HTMLをレンダリングします。
<audio>
要素で指定され、音声の再生が開始されます。 - Broadcasterがストリーミングを停止すると、App ServerはReact AppにWebSocketメッセージを送信し、quot;the stream is finished" Reactはプレーヤーを非表示にして、quot;OFFLINE"を表示する。
そこで、すべてのストリーミング(BroadcasterからApp Server、App ServerからReactクライアントの両方)をHTTPで行い、WebSocketを使ってストリームの状態更新をリアルタイムに通信しています。
このアーキテクチャはどのように良いのでしょうか?
解決方法は?
<ブロッククオートこのアーキテクチャはどのように良いのでしょうか?
良い悪いの問題ではなく、ユースケースに適しているかどうかの問題です。 SHOUTcastやIcecastのようなインターネットラジオサーバーが20年以上にわたって機能してきた方法と基本的に同じですから、それほど悪いものではないはずです :-)
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン