Web ページに「サーバー プッシュ」のような動作を実装する最も簡単な方法は何ですか?

StackOverflow https://stackoverflow.com/questions/873624

質問

Django サイト用に非常にシンプルな 2 人用のチャットルームを作成しようとしています。これを行うために AJAX を学んでいます。ユーザーの操作なしで Web ページの一部を更新する必要があります。

  • ユーザー 1 がメッセージを送信すると、そのメッセージがユーザー 2 の画面に表示されるはずです
  • ユーザー 1 がログオフすると、ユーザー 2 の画面でステータスが「オフライン」に変わるはずです。

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

(リバース AJAX について読んだことがありますが、読んだところによると、これは実装がより複雑です。ソリューションが高速である必要も、スケーラブルである必要もありません。機能するために必要なだけです。)

役に立ちましたか?

解決

気にしないって言ったから 彗星, 確かに、これはあまり簡単ではありませんが、setInterval がうまくいきます。ただし、賢明に対処したいと考えています。おそらく 30 秒の間隔で開始する必要があります。ユーザーがチャットを開始すると、間隔は 5 に下がるはずです。アクションがどんどん減っていくのに気づくと、タイマーは再び 30 秒まで減少するはずです。スケーラビリティのコンベンションで賞を受賞することはありませんが、平均的な中規模の Web サイトでは十分に機能します。

このテクニックの詳細については、 この関連質問をチェックしてください.

他のヒント

周回するを活用してください。一見すると、それはあまりにも複雑であることについてぶつぶつ言う開始し、オーバー釉するためにあなたの目のために簡単ですが、あなたが通過し得れば、それはあなたの「ベストプラクティス」である、そしてなぜそれが迅速かつスケーラブルの両方が何であるかを理解しましょう。

また、自分はこれが優れた技術であることを認識見つけると、動的なWebページの挙動ののたくさんののために使用することができます。

ちょっと中途半端あなたを満たしているもう一つの選択肢は、 WebSyncオンデマンドの(または任意の他のホストされた彗星ですサービス...)他の人が存在するかどうかわかりません。これは、サーバー・プッシュ機能を実装してみましょう、しかし、あなたがする必要があるすべてはJavaScriptクライアントが含まれているので、作業を取得するにはいいと簡単ですよ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top