服务器客户端推/拉连接是如何工作的?
我对财务数据如何从服务器流到客户端非常感兴趣。我经常在这里使用“推拉”一词。我想知道是否有人能给我举个例子(最好是Java、C#或Javascript),说明这是如何实现的?每当我在家里写业余爱好项目时,我常常会查询一个URL(包含价格),并在一个while(true)循环内用一个线程不断地调用它。睡眠(x),即使价格不变
提前谢谢
你可以在下面搜索框中键入要查询的问题!
我对财务数据如何从服务器流到客户端非常感兴趣。我经常在这里使用“推拉”一词。我想知道是否有人能给我举个例子(最好是Java、C#或Javascript),说明这是如何实现的?每当我在家里写业余爱好项目时,我常常会查询一个URL(包含价格),并在一个while(true)循环内用一个线程不断地调用它。睡眠(x),即使价格不变
提前谢谢
# 1 楼答案
如果客户端通过HTTP工作,推送总是由客户端启动,即客户端请求新的更新,服务器发送更新。如果客户机是瘦客户机(即在浏览器中运行的应用程序),现代的方法是使用AJAX检索数据,而无需刷新页面。但同样,主动权在客户端,但用户看不到。它是使用javascript按计划完成的
最“实时”的方法是使用HTTP隧道技术:客户端对映射到servlet的特殊URL执行HTTP GET,而servlet不会关闭连接。它只是把它打开。当它有东西要发送给客户机时,它会写入流。所以,您得到了服务器到客户端的推送,但初始连接仍然是由客户端执行的
# 2 楼答案
你在拉Pulling是指客户端从服务器请求数据,服务器根据该请求进行操作
如果服务器在接收到新数据时会向您发送数据,那将是push
所以区别在于:推送是由服务器启动的,拉取是由客户端启动的
财务数据通常通过TIBCO Rendezvous等软件传输。发布者将消息发送给守护进程,订阅该主题的侦听器从守护进程获取消息
# 3 楼答案
我不知道“流式金融数据”是什么意思,但推/拉的概念并不局限于金融行业:)
一般来说,pull策略意味着客户机通过预定义的通信通道(在您的情况下是现有和已知URL的套接字)主动获取数据,并轮询该通道以获取新信息
与此相反,您有推送策略,在推送策略中,您会收到任何更改的通知,并提供通信通道,并向连接的合作伙伴注册。例如,你有一个网络服务,你的连接伙伴会在他认为合适的时候向该网络服务发布信息。这个概念见http://en.wikipedia.org/wiki/Observer_pattern
希望这能有所帮助
# 4 楼答案
这是两种基于网络的推送技术
至于浏览器支持:
有很多拉取技术,包括HTTP和ajax