質問

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

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

以下の要件を検討する方が良いかどうかをお勧めします-ape vs node.js

  1. 一度に少なくとも400の同時接続を処理できるはずです
  2. サーバーは、これらすべてのクライアントにデータをプッシュできるはずです。
  3. クライアントはお互いの間でデータを送信します。
役に立ちましたか?

解決

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

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

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

他のヒント

誰もがNode.jsに向かって実行しているにもかかわらず、私たちはに基づいてチャットアプリケーションを行いました 類人猿 そして、私たちはそれにとても満足しています。

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

このプロジェクトでは、私たちが処理します リアルタイムメッセージを持つ〜9000の同時ユーザー。 nginxサーバーがapeの前に置かれて、deflate/gzipサポートを提供します

この構成(nginxなし)は、「それほどハイエンドではない」マシンであっても、要件に対処することに問題はありません。

データを「チャンネル」または1人のユーザーにプッシュできるため、ブロードキャストからメッセージまでの類人猿で探しているものを正確に達成できるはずです。

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

一方、この種の接続の同時性のためにnode.jsが作成され、ようなパッケージがあります socket.io, 、フォールバックソリューションやその他の有用な機能を備えたさまざまな種類の輸送オプションを提供するため、開発者の生活をずっと楽にすることができます。

大規模なアプリケーションにはAPEをお勧めしません。チャットアプリケーションにとっては問題ありませんが、Mass Data Transportは、クライアントのブラウザが遅くなり、しばらくすると押しつぶされ始めます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top