2011-07-20 41 views
3

私は非常に金融データがサーバーからクライアントにどのように流れているかに興味があります。私はしばしばここではプッシュプルという言葉が使われています。私は誰かが私にJava(C#またはおそらくJavascriptで)の例を与えることができるかどうか疑問に思った。私が家庭でアマチュアの趣味のプロジェクトを書いたときは、価格が変わらなくても、URL(価格を含む)をクエリし、while(true)ループでthread.sleep(x)を呼び出して終了することがよくあります。サーバークライアントのプッシュ/プル接続はどのように機能しますか?

ありがとうございます。

+0

[財務ページの更新方法](http://stackoverflow.com/questions/6759192/how-do-pages-like-yahoo-finance-update-page-without-plugins-etc-http-push/ 6759218#6759218) – Raynos

答えて

3

はあなたの財務データをストリーミング 'で何を意味するか分からないのですが、プッシュ/プルの概念は、金融セクターに限定されるものではない:)

一般的な戦略は、クライアントが活発になっていることを意味引き、話します事前定義された通信チャネル(既存の既知のURLへのソケット)を介してデータを取得し、このチャネルをポーリングして新しい情報を取得します。

これとは対照的に、変更の通知を受け、コミュニケーションチャネルを提供し、それを接続のパートナーに登録するプッシュ戦略があります。例えば。あなたはウェブサービスを持っており、あなたの接続パートナーは、彼が合っているといつでもそのウェブサービスに情報を投稿します。この概念については、http://en.wikipedia.org/wiki/Observer_patternを参照してください。

これは少し役に立ちます。

0

あなたはプルしていました。 Pullingは、クライアントがサーバーからのデータを要求し、サーバーがその要求に対して動作するときです。

新しいデータを受信したときにサーバーからデータが送信される場合は、pushになります。

違いは次のとおりです。プッシュはサーバーによって開始され、プルはクライアントによって開始されます。

金融データは、多くの場合、のようなソフトウェアで送信されます。パブリッシャがメッセージをデーモンに送信すると、そのサブジェクトに加入しているリスナーがデーモンからメッセージを取得します。

2

クライアントがHTTP経由で作業している場合、プッシュは常にクライアントによって開始されます。つまり、クライアントから新しい更新が要求され、サーバーから送信されます。クライアントがシンクライアント(ブラウザで実行中のアプリケーション)の場合、現代的な方法はAJAXを使用してページを更新せずにデータを取得することです。しかし、もう一度イニシアチブがクライアント側にありますが、ユーザーはそれを見ないだけです。それは、javascriptを使用して定期的に行われます。

ほとんどの「リアルタイム」アプローチでは、HTTPトンネリング手法を使用しています。クライアントは、接続を閉じることのないサーブレットにマップされた特別なURLに対してHTTP GETを実行します。それは単にそれを開いて保持します。それがクライアントに送る何かを持っているとき、それはストリームに書き込みます。したがって、サーバーからクライアントへのプッシュが発生しますが、依然として初期接続はクライアントによって実行されました。

+0

Webソケットとイベントソースはリアルタイムです。 – Raynos

+0

こんにちは、このサーバーツークライアントHTTP GETメソッドの名前はありますか? thanks – Jean

0

これらは、2つのWebベースのPUSH技術です。 ブラウザのサポートについては

  • クローム/サファリ/ Firefox6はそれらの両方をサポートしています。
  • OperaはEventSourceとWebsocketをサポートしていますが、デフォルトでは無効になっています。
  • Firefox 4はウェブソケットをサポートしていますが、デフォルトでは無効になっています。
  • IE < 10サポートしている場合はどちらも、IE10は、1をサポートしていないかもしれないあなたの幸運

HTTPおよびAJAXを含む多くのプル技術があります。

+0

ありがとう(私はあなたの最初のコメントに返信しようとしましたが、それは働かないでしょう) – Jean

+0

JavaまたはC#PUSHテクニックはありますか? – Jean

+0

@David彼らはJavaまたはC#だけで、サーバーを実装する必要があります。 Google for .NET WebSocketまたはJava Websocketです。そこに完全に言語nuetral – Raynos

関連する問題