或从服务器到客户端的任何其他类型的实时数据馈送......我在谈论从服务器到客户端的一堆实时数据。即每秒进行一次信息更新。
服务器是否神奇地将数据推送到客户端,或者客户端是否需要不断轮询服务器以获取更新?根据什么协议,这通常有效? (http,socket通信等?)
答案 0 :(得分:1)
在一个简单的案例中:
while(data = recv(socket))
(伪代码)send(...)
在套接字上。 您甚至可以通过HTTP实现此模式(HTTP套接字没有实际的上限时间)。服务器甚至不需要从套接字读取 - 它可能只是尝试写入firehose。
通常使用TCP套接字 - 消息按顺序到达,并且是最好的努力。如果延迟更重要,丢失或乱序不成问题,可以使用UDP。
答案 1 :(得分:1)
在经纪人/银行等使用的服务器端财务应用程序中,市场数据(报价,交易等)通过TCP传输,通过某些应用程序级协议,其中很可能不会为HTTP。当然,没有民意调查。客户端正在与服务器建立TCP连接,服务器将数据推送到客户端。分发市场数据的常用方法之一是FIX。 汤森路透有大量神秘的专有协议可以追溯到大型机时代,以分发这些数据。
HTTP可用于SOAP / RESTful传输/请求数据量不大的数据,如商业新闻。
UPDATE 实际上,即使FIX在某些情况下还不够,因为它具有很大的开销,因为它具有“文本”性质。大多数代理和交换使用二进制格式协议(FAST或某些专有协议)传输高容量流,例如引号。