2009-05-17 21 views
4

私はDjangoのサイトで2人用の非常に簡単なチャットルームを作ろうとしています。私はこれを行うAJAXを学んでいます。私は、ユーザーの操作なしで更新するには、Webページの部品が必要です。ウェブページに「サーバープッシュ」のような動作を実装する最も簡単な方法は何ですか?

  • ユーザー1がメッセージを送信すると、ユーザー1つのログオフ、彼のステータスが「オフライン」に変更する必要がある場合は、それがユーザー2の画面
  • に表示されますユーザー2の画面で

これを実装する最も簡単な方法は何ですか?定期的にJavaScriptを使用してサーバーをポーリングするだけですか?もしそうなら、これを行うベストプラクティスは何ですか? setIntervalまたはsetTimeoutの使用に関するいくつかの解決策を見つけましたが、これが最善の方法であるかどうかはわかりませんでした。

は(私は約AJAXを逆に読んだが、私は、これは実装がより複雑である何を読んでから、私は、高速またはスケーラブルになるように私の解決策を必要としませんが、私はちょうどそれが動作する必要があります。)

答えて

3

Cometは気にしないと言われているので、setIntervalはそのトリックを行います。あなたはそれについて賢明になりたいです。おそらく、30秒の間隔で開始するべきです。ユーザーがチャットを開始すると、インターバルは5に減少するはずです。アクションが少なくなるにつれて、タイマーは再び30秒に減衰するなどのようになります。スケーラビリティコンベンションで賞を獲得することはありませんが、中規模の平均的なウェブサイトではそれを実現します。

この手法の詳細については、check out this related questionを参照してください。

2

Orbitedを利用してください。一見したところで、あなたの目は艶をかきやすく、あまりにも複雑すぎることに戸惑うことがありますが、一度それを渡すと、「ベストプラクティス」が何であるか、そしてなぜそれが高速でスケーラブルであるのか理解できます。

また、これは優れたテクニックであり、ロット動的Webページの動作に使用できることに気付くでしょう。

+0

Thanks Joel;確かめます。 – RexE

0

途中であなたに会うその他のオプションは、WebSync On-Demand(または他のホストされている彗星サービス...他にもあるかどうかわかりません)です。サーバープッシュ機能を実装することができますが、作業を始めるには簡単ですばらしいです.JavaScriptクライアントを含めるだけです。

関連する問題