4

TCP を使用してプログラムされたサイト (つまり、サイト上の誰かがサーバーに接続し、TCP を介して情報を交換している) は、AJAX を介して情報を提供するだけの場合と比較して、どのようにスケーリングしますか? 交換される情報は同じであるとします。

明確化しようとしています:私は具体​​的に規模について尋ねています:情報を静的に提供するだけと比較して、何千ものTCP接続を維持することはリソース(どれ?)を要求することを読んだことがあります。これが正しいかどうか知りたいです。

4

4 に答える 4

1

WebSockets は、サーバーがクライアントに通知をプッシュできるようにするテクノロジーです。一方、AJAX はプル テクノロジであり、クライアントがサーバーに要求を送信することを意味します。

たとえば、サーバーから定期的に通知を受け取り、その UI を更新する必要があるアプリケーションがある場合、WebSocket はより適応し、はるかに優れています。AJAX を使用すると、サーバー上で何らかの状態が変化したかどうかを確認するために、定期的にサーバーにリクエストを送信する必要があります。WebSocket では、サーバー上で発生した何らかのイベントをクライアントに通知するのはサーバーです。そして、これは単一のリクエストで行われます。

したがって、開発しているアプリケーションのタイプに大きく依存すると思いますが、WebSockets と AJAX は、異なる種類の問題を解決する 2 つの完全に異なるテクノロジです。どちらを選択するかは、シナリオによって異なります。

于 2013-01-26T19:24:27.103 に答える
1

Websocket は AJAX と 1 対 1 ではありません。それらは実質的に異なる機能を提供します。Websockets は、データをクライアントに「プッシュ」する機能を提供します。AJAX は、データを「プッシュ」して応答を返すことによって機能します。

WebSockets の目的は、ブラウザーとサーバー間で低レイテンシー、双方向、全二重、および長時間実行される接続を提供することです。WebSockets は、以前は HTTP や AJAX を使用して利用できなかったブラウザー アプリケーションの可能性を開きます。

ただし、WebSocket と AJAX の間には目的が重複していることは確かです。たとえば、ブラウザがサーバー イベント (プッシュなど) の通知を受け取る必要がある場合、AJAX または WebSocket のいずれかが実行可能なオプションです。アプリケーションが低遅延のプッシュ イベントを必要とする場合、これは WebSocket を支持する要因となり、このシナリオでは確実にスケーリングが向上します。一方、既存のフレームワークとデプロ​​イされたテクノロジー (OAuth、RESTful API、プロキシなど) を使用する必要がある場合は、AJAX が適しています。

WebSockets が提供する特定の利点が必要ない場合は、AJAX などの既存の手法に固執することをお勧めします。これにより、ツール、テクノロジ、セキュリティ メカニズム、ナレッジ ベースの既存のエコシステムを再利用して統合できるからです。過去7年間に開発されたもの。

しかし全体として、Websockets は AJAX を大幅に上回るパフォーマンスを発揮します。

于 2013-01-26T19:33:20.283 に答える
0

これは、Ajax ロング ポーリング (特に大規模な場合) と比較した WebSocket API の利点を明確に示している優れたページです: http://www.websocket.org/quantum.html

基本的には、最初の HTTP ハンドシェイクが確立されると、ヘッダーのオーバーヘッドが大幅に削減されるため、データをより迅速にやり取りできるようになります (これは、ほとんどの人が双方向通信と呼んでいるものです)。

余談ですが、定期的にサーバーからデータをプッシュできるようにする必要があるだけで、クライアントが開始するリクエストを多く行う必要がない場合は、サーバーからの時折の Ajax リクエストでHTML5 サーバー送信イベントを使用します。 client はまさに必要なものであり、WebSocket API よりもはるかに簡単に実装できます。

于 2013-01-27T00:54:31.173 に答える
0

スケーラビリティに関しては、WebSocket と標準の TCP 接続の間に違いはないと思います。WebSocket は、静的な一方向パイプから二重パイプへのアップグレードです。物理リソースはまったく同じです。

WebSocket の主な利点は、ポート 80 で実行されるため、ほとんどのファイアウォールの問題を回避できることですが、最初に標準の HTTP で接続する必要があります。

于 2013-01-26T20:04:20.450 に答える