3

Facebook チャットに似たチャットを作成する必要があります。

ajaxポーリングを使用することを考えています(2〜3秒ごとにリクエストを送信します)。

これは良いアプローチですか?または、erlang や server-comet などの他のサーバー側言語を使用する必要がありますか?

4

2 に答える 2

2

または、他のサーバー側の言語を使用する必要があります

いいえ-それは実際には関係ありません-最大の問題はHTTPがプッシュ通知をサポートしていないことです-したがって、Webサーバーで使用する言語はほとんど関係ありません。

サーバー彗星?

Cometはプログラミング技術であり、言語ではなく、HTTPにプッシュがないことに対処するために特別に設計されています。従来、ブラウザはリクエストを送信し、ウェブサーバーはレスポンスを作成してからクライアントに送り返します。Cometを使用すると、Webサーバーは次のいずれかになるまで待機します。

1)応答に含めるいくつかの更新があります

2)タイマーが切れます

応答を送信する前。この結果、Webサーバーへの非アクティブな接続の数が多くなり、パフォーマンスの問題が発生する可能性があります。

別のアプローチは、HTTPを使用して、別のプロトコルを使用してチャットサーバーに接続するブラウザーで実行するクライアントプログラムを検索することです。これは、ActiveX、Java、またはフラッシュで行うことができます。これらはすべて、移植性だけでなく、大きな欠点があります。

PHPとjavascriptを使用して事前に作成されたソリューションがいくつかあります-ヒント-ドキュメントにNaggleが記載されていない場合、スケーラビリティ/パフォーマンスについてはおそらく考えていません。

C。

于 2010-06-04T11:50:54.990 に答える
0

それは、私が推測するユーザーの数によって異なります。多くのユーザーがいない場合に機能します(これは、過去に行われた方法です)。しかし、私の意見では、x 秒 (ポーリング間隔) も遅延する可能性があるため、チャットはリアルタイムではありません。

多くの同時ユーザーがいると、ポーリング モデルは拡張されません。次に、ノンブロッキングのロングポーリング(少なくとも)を実際に検討する必要があります。可能な限りノンブロッキング ロング ポーリング手法を検討する必要があると思います。なぜなら、それが大規模なサイトがリアルタイム アプリケーションを行う方法だからです。ただし、PHP はこの手法には適していないため、サーバーで他のプログラミング言語をインストールできるようにする必要があります。

于 2010-06-07T03:38:10.457 に答える