これは好奇心をそそり、 "将来の参考になる"ものですが、データベース側ではどのように実装されていますか?ほとんどの実装では、データが利用できるようになるまで長時間待機するHTTPリクエストを使用することがわかりますが、これはサーバー側でどのように行われますか? Webサーバーは、新しいデータがいつ利用できるかをどのように知っていますか?それは絶えずデータベースをポーリングしますか?データベース側の彗星を実装する
2
A
答えて
1
あなたはどのDBを使用していますか?多くのRDBMSが何らかの形または形式で行うトリガーをサポートしている場合、実際にHTTP要求に適切な応答を送信するように通知するイベントを起動させることができます。
トリガーがポーリングする必要性を排除します...ポーリングは一般的には最適ではありません。
PostgreSQLはかなり良いサポート(PL/Pythonでさえ)を持っているようです。
1
これはアプリケーションによって大きく異なります。最も可能性の高い実装は、ある種のメッセージングシステムです。
ほとんどの場合、かなりの数の部品で構成されます、サーバー側のコード:開いているすべての接続を扱って
- 着信要求をhansleいくつかのアプリケーションサーバ、
- (別の)彗星のサーバー上のクライアントに、メッセージングインフラストラクチャの
- データベース、および
- 何らかの
最後eでは、メッセージングインフラストラクチャが本当に重要です。これにより、アプリサーバーがコメットサーバーと通信する方法が提供されます。したがって、アプリケーションサーバーにリクエストが入ると、メッセージキューにメッセージを書き込んで、彗星サーバーに正しいクライアントに通知するように指示します。
メッセージングの実装方法は、アプリケーションに非常に大きく依存します。非常に簡単な実装では、messages
という名前のデータベーステーブルを使用し、それをポーリングします。
しかし、使用する予定のスタックによっては、もっと洗練されたツールが利用できるはずです。
私はを使っていますが、単にネットワークポートで待ち受けます。送信するデータがある場合はいつでも、Railsアプリケーションサーバーはこのジャガーノートプッシュサーバーへの接続を開き、クライアントに何を送信するかを指示します。
関連する問題
- 1. 彗星の実装方法は?
- 2. 彗星対pubsub ..?
- 3. 彗星Javascriptのエラー
- 4. dwr彗星のアプローチ
- 5. 移植可能で軽量な彗星サーバーの実装は何ですか?
- 6. 彗星のパフォーマンスの問題
- 7. ASP.NET AsyncHttpHandlersを持つ彗星
- 8. 彗星なしのJqueryリアルタイムチャート
- 9. 彗星のない逆Ajax?
- 10. 彗星の接続タイムアウト
- 11. ポーリング、彗星、WebSocketsなど
- 12. DWR 2〜DWR 3彗星
- 13. 彗星のためのクライアントサイドのテクニック
- 14. Apacheのmodプロキシとtomcatの彗星
- 15. PHP - 彗星のメモリの問題
- 16. 彗星ヒントを使用して.Net
- 17. JavaScript非表示のiFrame彗星
- 18. 彗星サーバーの選択と展開
- 19. 長いポーリング(彗星)でHttpURLConnectionのタイムアウト - android
- 20. 彗星サーバーとXMPPサーバーの違い
- 21. PubSub JavaでのEventBus(彗星様式)
- 22. 開始方法:Javaでの彗星プログラミング
- 23. Ajax彗星 - 遅い次のリンク
- 24. Djangoページアップデートajaxまたは彗星
- 25. 道場彗星+周回が404
- 26. 星のアルゴリズムの実装
- 27. 彗星とのチャットアプリケーションを作成するための提案
- 28. GWT彗星の雰囲気を使用する
- 29. ベストメソッド流星/流星塊でフォロワーを実装する
- 30. Python-Djangoでの彗星のような振る舞い
私の質問に直接答えることはできませんでしたが、説明(また、私はRubyを使用しているため、Juggernautへのリンクもあります)に+1しました。 –