我对如何从服务器流向客户端的财务数据非常感兴趣。我经常使用“推拉”这个术语。我想知道是否有人可以给我一个例子(最好用Java,C#或Javascript)这是如何实现的?每当我在家里编写业余爱好项目时,我经常最终查询一个URL(包含价格)并在一段时间(真实)循环中使用thread.sleep(x)连续调用它,即使价格没有变化。 / p>
提前致谢
答案 0 :(得分:3)
不知道你对'流媒体财务数据'的意思,但推/拉的概念不仅限于金融行业:)
一般来说,拉策略意味着客户端通过预定义的通信通道(在您的情况下是现有和已知URL的套接字)主动获取数据,并轮询此通道以获取新信息。
与此相反,您有推送策略,您可以通知任何更改,并提供通信渠道并将其注册到连接的合作伙伴。例如。您有一个Web服务,您的连接合作伙伴会在他认为合适时将信息发布到该Web服务。有关此概念,请参阅http://en.wikipedia.org/wiki/Observer_pattern。
希望这有点帮助。
答案 1 :(得分:2)
如果客户端正在通过HTTP工作,则推送始终由客户端启动,即客户端请求新的更新,服务器发送它们。如果客户端是瘦客户端(即在浏览器中运行的应用程序),那么现代的方法是使用AJAX来检索数据而不刷新页面。但这一举措再次出现在客户端,但用户却看不到它。它是使用javascript定期完成的。
最“实时”的方法是使用HTTP隧道技术:客户端对映射到不关闭连接的servlet的特殊URL执行HTTP GET。它只是保持开放。当它有东西要发送给客户端时,它会写入流。因此,您可以获得服务器到客户端的推送,但客户端仍然执行初始连接。
答案 2 :(得分:0)
你在做拉。 Pulling是客户端从服务器请求数据并且服务器对该请求执行操作的时间。
如果服务器在收到新数据后会向您发送数据,那就是push。
所以不同之处在于:push由服务器启动,pull由客户端启动。
财务数据通常使用TIBCO Rendezvous等软件传输。发布者将消息发送给守护程序,并且订阅该主题的侦听器从守护程序获取消息。
答案 3 :(得分:0)
这是两种基于网络的PUSH技术。
至于浏览器支持:
有很多拉技术,包括HTTP和ajax。