股票市场数据源如何运作?

时间:2010-12-18 06:01:20

标签: language-agnostic client-server datafeed

或从服务器到客户端的任何其他类型的实时数据馈送......我在谈论从服务器到客户端的一堆实时数据。即每秒进行一次信息更新。

服务器是否神奇地将数据推送到客户端,或者客户端是否需要不断轮询服务器以获取更新?根据什么协议,这通常有效? (http,socket通信等?)

2 个答案:

答案 0 :(得分:1)

在一个简单的案例中:

  1. 使用侦听套接字创建服务器。
  2. 在客户端上,连接到服务器的套接字。
  3. 让客户端执行while(data = recv(socket))(伪代码)
  4. 当服务器有令人兴奋的东西告诉客户端时,它只是send(...)在套接字上。
  5. 您甚至可以通过HTTP实现此模式(HTTP套接字没有实际的上限时间)。服务器甚至不需要从套接字读取 - 它可能只是尝试写入firehose。

    通常使用TCP套接字 - 消息按顺序到达,并且是最好的努力。如果延迟更重要,丢失或乱序不成问题,可以使用UDP。

答案 1 :(得分:1)

在经纪人/银行等使用的服务器端财务应用程序中,市场数据(报价,交易等)通过TCP传输,通过某些应用程序级协议,其中很可能不会为HTTP。当然,没有民意调查。客户端正在与服务器建立TCP连接,服务器将数据推送到客户端。分发市场数据的常用方法之一是FIX。 汤森路透有大量神秘的专有协议可以追溯到大型机时代,以分发这些数据。

HTTP可用于SOAP / RESTful传输/请求数据量不大的数据,如商业新闻。

UPDATE 实际上,即使FIX在某些情况下还不够,因为它具有很大的开销,因为它具有“文本”性质。大多数代理和交换使用二进制格式协议(FAST或某些专有协议)传输高容量流,例如引号。