2

ウェブサイトの数字をすばやく更新する方法を知りたいです。

多くの出力を生成するマシンがあり、それをオンラインで表示する必要があります。ただ、更新頻度が高くてどうしたらいいのかわからないのが悩みです。

最後の N 個の数字、たとえば 10 個を表示するとよいでしょう。数値は 30Hz で更新されます。それは人間の目には多すぎるかもしれませんが、人間の目はここで制御するためだけです.

どうやってこれを行うのだろうか。ページをリロードすると、ブラウザーは継続的にページをロードし続けます。Web ページの場合は、これらの数値以上のものを表示する必要があります。

特定の IP アドレスとポート番号を介してページに番号を書き込む未加工の Web エンジンを生成することもできますが、それでもこのページのリロードが遅すぎて、ユーザーに奇妙な体験を与えるのではないかと思います。

Web サイトでこのような極端な更新率のデータにどのように対処すればよいでしょうか? 通常、ウェブサイトはそうではありません。

この質問のタグで、私が理解できる言語に名前を付けました。最終的にはおそらく C# で記述します。

4

3 に答える 3

2

a) サイトの一部のみを更新する ajax と組み合わせた WebSocket は機能しますが、欠点: クライアント インフラストラクチャ (プロキシ) がそれらをサポートする必要があります (現在、99% の場合ではありません)。

b) 既存のインフラストラクチャでは、アプローチはロング ポーリングです。javascript を使用して XmlHttpRequest を作成します。データが存在しない場合、リクエストはサーバー側で 5 ~ 10 秒間ブロックされます。データが利用可能な場合は、すぐにリクエストに応答します。その後、クライアントはすぐに新しいリクエストを送信します。プロキシ経由で接続する Java クライアントを使用して、1 秒あたり 500 を超える更新を得ることができました。十分なスループットを得るには、リクエストごとに複数の更新をバンドルする必要があります。

于 2012-12-18T18:19:19.677 に答える
1

ページのリロードを使用する必要はありません。WebSocket を使用して、ブラウザー (JavaScript 経由) とサーバーの間でオープンな双方向通信を確立できます。

Python Tornado は、このビルトインをサポートしています。さらに、それをサポートする他の Python サーバーがいくつかあります。Socket.IOは、クライアント側を容易にするフォールバックを備えた優れた JavaScript ライブラリです。

于 2012-12-18T18:09:08.990 に答える
0

バックエンドでは、Redis または VoltDB などの NewSQL データベースを使用して、メモリ内データベースを高速に更新できます。キャッシングは、レイテンシーの高いコンポーネント (特に書き込み負荷の高いアプリケーション) で大いに役立ちます。

フロントエンドでは、Websockets と Comet Web アプリケーション モデルを調べることができますhttp://en.wikipedia.org/wiki/Comet_%28programming%29

多くのゲーム会社は、迅速なカウンターの更新と表示に対処する必要があります。検討する価値があるかもしれません. Zynga はプロトコル呼び出し AMF を使用しますhttp://highscalability.com/blog/2010/3/10/how-farmville-scales-the-follow-up.html

于 2012-12-18T18:28:50.790 に答える