5

今日は、30 分以内に jQuery チャットを作成するという課題に挑戦しました。結局40分かかりました。

ただし、サーバーとブラウザの負荷がひどくならないように改善したいと考えています。

現在、ユーザーがテキスト ボックスに入力して Enter キーを押すと、このデータが .php ファイルに送信され、mySQL テーブルが更新され、テーブルのすべての行が出力されます。

ユーザーがEnterキーを押さずに誰かが何かを言った場合に更新するために、divには2秒ごとに設定された間隔があります。

これをより良い方法、または最も効率的な方法で実行する方法についての考えを知りたかっただけです。使用するのに最適なテクノロジーとその理由を理解したい。

ご意見をお寄せいただきありがとうございます。私はスタック オーバーフローが大好きで、私にとってかけがえのないものでした。

4

1 に答える 1

2

「php back」/「javascript front」テクノロジー スタックを使用するチャット アプリケーションに ajax ポーリングを使用すると、必然的にサーバーの負荷が高くなります。Http はそのような通信用に設計されていません。Apache を使用している場合 (私が想定しているように)、要求ごとに非常に大きなオーバーヘッドが発生します。

いくつかのコメントが示しているように、フル スタックの JavaScript フレームワーク (つまり、バックエンドのNode.js )を使用して調査することができます。

PHP バックエンドと Javascript フロントエンド (定期的な ajax ポーリングを使用) を使用して既存のチャット アプリケーションを高速化するタスクがあったとき、軽量のXMPP要求を処理するためにサード パーティのサーバー側製品を使用することになりました。このサーバー側の製品はOpenFireでしたが、パフォーマンスをさらに向上させるためにeJabberdを使用できます。ただし、OpenFire はセットアップと保守が簡単です。結果は満足のいくもので、サーバーの負荷は大幅に低下し、(平均以下のパフォーマンスの専用の Linux ボックスで) チャットしている最大 1000 人のオンライン ユーザーにメッセージが即座に配信されました。

SO の回答の範囲内ですべての詳細を説明するのは困難ですが、幸運なことに、Ben Werdmuller @ IBM は、このトピックに関する素晴らしいチュートリアルを書くために道を踏み外しました。

于 2012-08-01T17:32:07.483 に答える