-1

私はMVCを初めて使用します。これまでのところ、各Webリクエストは独立しており、コントローラーでは通常、新しいModelオブジェクトを作成し、データソースからロードします。これは、DBに対して作業し、必要なモデルオブジェクトをロードする場合に最適です。

しかし、私のデータソースがライブのリアルタイムストリーミングデータであり、ユーザーがボタンをクリックしたときに、ストリームから取得した最後のデータをユーザーに提供する必要がある場合はどうなりますか?

私が考えることができる最も簡単な例は、株式データです。

取引所に接続し、株価のライブフィードをサブスクライブするデータソースオブジェクトがあり、クライアントが[最後の見積もりを取得]ボタンをクリックしたときに、取得した最新の価格を返す必要があるとします(注:クライアントにデータをストリーミングする必要はありません。クライアントがクリックしたとき、または5秒ごとなどにスナップショットを返すだけです。

つまり、アプリケーションが静的データソースオブジェクトの作成を開始したら、それを取引所に接続してフィードのリッスンを開始し、価格が変更されるたびに、ローカル変数とコントローラーに保存します。静的データソースを呼び出して最後のティックを要求するだけです(ローカル変数の値が返されます)。

私の質問が明確であることを願っています。簡単かもしれませんが、MVCでの正しいパターンはわかりません。何か案は?

4

1 に答える 1

0

私はそれを4つの部分から作成します:

  • 株式データをNoSQLデータベースに継続的にプッシュするバックグラウンドプロセス/デーモン
  • Webサイトにサービスを提供するメインアプリケーション
  • 開いているソケットをリッスンするか、数秒ごとにデータを要求するjavascriptドライバーフロントエンドアプリ
  • NoSQLから情報を取得し、フロントエンドリクエストを処理するデータプロバイダー

メインアプリケーションとフロントエンドにいくつかのMVCに触発されたパターンを使用することは理にかなっています(はい、2つのMVCトライアド)。しかし、残りはただ栄光のトランザクションスクリプトです。

于 2012-11-05T23:44:38.923 に答える