2

user1 が現在オンラインのユーザーのリストから user2 を選択すると、user2 にメッセージが送信されます。

user1 が送信したメッセージは、ajax を介してデータベースに保存されます。

現在、setInterval メソッドを使用して ajax 呼び出しを行って、5 秒ごとにデータベースからメッセージを取得しています。user2 に新しいメッセージがない場合でも、ajax リクエストは 5 秒ごとに継続的にサーバーに送られます。これにより、サーバーの負荷が増加します。

user2 がメッセージを取得した場合にのみ、user2 にメッセージを更新する方法はありますか?これは、サーバーに送信される数を減らす要求です。

4

1 に答える 1

1

Node.js と socket.io (node.js のプラグイン) を見てみましょう。JavaScript と PHP の使い方を知っていればそれほど複雑ではありませんが、サーバーとクライアント間のライブ接続を維持し、リアルタイムでデータをやり取りすることができます。実装はアプリケーション固有のものになるため、これがどのように機能するかについて完全な例を示すには広すぎます。node.js を使用したチャットの実装に関するガイドがいくつかあります。いくつかグーグルで調べてみてください。数日間の調査の後、実装することができました。

これで始められるはずです:http://net.tutsplus.com/tutorials/javascript-ajax/real-time-chat-with-nodejs-socket-io-and-expressjs/

私は最終的にあなたが最初に提案したことを正確に行いましたが、それは非常に非効率的であることがわかりました. 少し時間をかけてノードサーバーをセットアップしたところ、ユーザーはリアルタイムで相互にやり取りできるようになりました。

于 2013-10-09T18:18:23.047 に答える