6

またはサーバーからクライアントへのその他のタイプのリアルタイム データ フィード... サーバーからクライアントへのリアルタイム データの束について話しています。つまり、情報は毎秒更新されます。

サーバーは魔法のようにデータをクライアントにプッシュしますか?それとも、クライアントは更新のためにサーバーを継続的にポーリングする必要がありますか? また、これは通常どのプロトコルで機能しますか? (http、ソケット通信など?)

4

2 に答える 2

1

ブローカー/銀行などが使用するサーバー側の金融アプリケーションでは、市場データ(見積もり、取引など)は、おそらくHTTPではないアプリケーションレベルのプロトコルを介してTCP経由で送信されます。もちろん、ポーリングはありません。クライアントはサーバーとのTCP接続を確立しており、サーバーはデータをクライアントにプッシュします。市場データを配布するための一般的なアプローチの1つは、FIXです。Thomson-Reutersは、そのようなデータを配布するために、メインフレームの時代にさかのぼる独自のプロトコルを数多く持っています。

HTTPをSOAP/RESTfulに使用して、ビジネスニュースのようにそれほど大量ではないデータを送信/要求できます。

UPDATE実際には、FIXは「テキスト」の性質のために大きなオーバーヘッドがあるため、場合によっては十分ではありません。ほとんどのブローカーと取引所は、バイナリ形式のプロトコル(FASTまたは独自仕様)を使用して、見積もりなどの大量のストリームを送信します。

于 2010-12-20T15:47:29.870 に答える
1

簡単なケースでは:

  1. リッスン ソケットを持つサーバーを作成します。
  2. クライアントで、サーバーのソケットに接続します。
  3. クライアントにwhile(data = recv(socket))(疑似コード)を実行させる
  4. サーバーがクライアントに伝えたい何か刺激的なものを持っている場合、それは単純send(...)にソケット上で s になります。

このパターンを HTTP 経由で実装することもできます (HTTP ソケットには実際の時間の上限はありません)。サーバーはソケットから読み取る必要さえありません。firehose にのみ書き込みを試みることができます。

通常、TCP ソケットが使用されます。メッセージは順番に到着し、ベストエフォートです。遅延がより重要で、ドロップまたは故障が問題にならない場合は、UDP を使用できます。

于 2010-12-18T06:14:35.663 に答える