私は基本的な少しのAJAX shoutbox/chatを自分のウェブサイト用に構築していますが、サーバーのポーリングを実装する方法は正確にはわかりません。ここでJavaScriptチャットクライアントのサーバーポーリング間隔
は私が考えている基本的なプログラムの流れです:
- ユーザーがページに来て、他の人から送信されたメッセージを取得するには、最後の10件のメッセージ
- を示され、クライアントはJavascriptをしてURLを要求しますタイムスタンプパラメータ(クライアントが最後に受信したメッセージの値に設定されます)
- サーバは、タイムスタンプからすべてのメッセージ(最大10まで)を返します。
唯一の問題は、サーバーをポーリングする頻度です。明らかに新しいメッセージが追加されるたびにポーリングする必要がありますが、他人のメッセージを読むときには自動的に更新する必要があります。
設定期限はありますか?例:10秒ごと。それとも、それは用途によって異なるのでしょうか?例:5秒後に確認します。メッセージがない場合は、さらに10秒間チェックしないでください。まだ新しいメッセージがない場合は、15秒後にチェックを入れ、20秒後に30秒ごとに1回チェックします。新しいメッセージが検出されるたびに、タイマーを5秒間にリセットしてもう一度開始してください。
私は、オンラインで数百人のユーザーを同時に抱える可能性があることを考慮して、サーバーに不必要な負荷をかけることを心配しています。
...全部が間違っていますか?基本的なjavascriptチャットを実装するためのより良い方法はありますか?
これは、尋問者が概説したものです。あなたはその質問全体を読んだことがありますか? –
私は重要な点は、成功した更新と不必要な更新の微妙な明確化です。チャットの例では、新しいチャットがある場合、それはアクティビティを示し、ポーリング間隔は短い間隔にベースラインを設定する必要があります(正帰還ループ)。ポーリングが行われ、新しいチャットがない場合、次のチャプターの間隔が増える(負帰還ループ)必要があります。私はそれがポーリングを扱う非常に強力で効率的な方法のためだと思います。 – Kzqai