21

Webアプリケーションのサーバーからクライアントにリアルタイムでデータをプッシュするためのいくつかのオプションを検討しています。

私はポーリングベースの(各クライアントが30秒ごとにサーバーにhttpリクエストを送信する)アプリケーションを実装しましたが、10人のユーザーが入った後は実際にはスケールアップしません。このアプリ。MySQL、PHP、HTML、jQueryを使用して構築されています。

以下の要件を考慮して、どちらが良いかを提案してください-APE Vs node.js

  1. 一度に少なくとも400の同時接続を処理できる必要があります
  2. サーバーは、これらすべてのクライアントにデータをプッシュできる必要があります。
  3. クライアントは、相互にデータを送信します。
4

4 に答える 4

17

Socket.IOをご覧になることを強くお勧めします。これはサーバープッシュの完全なソリューションであり、サーバー側ライブラリ(node.jsで記述)とクロスブラウザ方式で作成されたクライアントJSライブラリの両方が含まれています。すでに作成され、動作し、テストされていることを実行するために独自のコードを実装する理由はありません。

socket.IOが処理しない唯一のケースは、3番目の要求ですが、それはとにかく不可能です。私があなたを正しく理解しているなら、あなたはサードパーティのサーバーの助けを借りずに2人のクライアントが通信することを望みますか?少なくとも今は、HTTPをP2Pに変更することはできません。

一方、socket.ioを使用して完全に実行可能なサーバーを介して2人のユーザーと通信することを意図している場合(プライベートな2人のチャットのようなことを行う)。

于 2011-09-05T07:11:43.367 に答える
14

現在、誰もがnode.jsに向かって走っていますが、 APEに基づいたチャットアプリケーションを作成し、非常に満足しています。

APEは、サーバー側のJSとクライアントフレームワークAPE_JSFの組み合わせであり、socket.ioから得られる機能(およびその他)を提供するため、「箱から出してすぐに」探しているものを提供します。

このプロジェクトでは、リアルタイムメッセージを使用して最大9000人の同時ユーザーを処理します。deflate /gzipサポートを提供するためにnginxサーバーがAPEの前に配置されます

この構成(nginxなし)でも、「それほどハイエンドではない」マシンでも、要件を問題なく処理できます。

データを「チャネル」またはシングルユーザーにプッシュできるため、ブロードキャストからダイレクトメッセージまで、APEで探しているものを正確に実現できるはずです。

于 2011-09-29T09:17:25.100 に答える
4

既存のスタック内でApacheを使用している場合は、すでに述べたように、継続的なポーリングではなく長いポーリングを使用しても、ユーザーのスケーリングに問題が発生します。解決策は、多くの同時接続を処理するためにnginxのような高性能Webサーバーを使用することかもしれません。

一方、node.jsはこの種の接続の同時実行性のために作成されており、socket.ioのようなパッケージがあります。これは、フォールバックソリューションやその他の便利な機能を備えたさまざまな種類のトランスポートオプションを提供するため、開発者の作業をはるかに楽にします。

于 2011-09-05T07:16:21.830 に答える
-1

大規模なアプリケーションには類人猿をお勧めしません。チャットアプリケーションには問題ありませんが、大量のデータ転送に関する限り、クライアントのブラウザはしばらくすると速度が低下し、クラッシュし始めます。

于 2012-08-18T14:39:57.087 に答える