有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

服务器客户端推/拉连接是如何工作的?

我对财务数据如何从服务器流到客户端非常感兴趣。我经常在这里使用“推拉”一词。我想知道是否有人能给我举个例子(最好是Java、C#或Javascript),说明这是如何实现的?每当我在家里写业余爱好项目时,我常常会查询一个URL(包含价格),并在一个while(true)循环内用一个线程不断地调用它。睡眠(x),即使价格不变

提前谢谢


共 (4) 个答案

  1. # 1 楼答案

    如果客户端通过HTTP工作,推送总是由客户端启动,即客户端请求新的更新,服务器发送更新。如果客户机是瘦客户机(即在浏览器中运行的应用程序),现代的方法是使用AJAX检索数据,而无需刷新页面。但同样,主动权在客户端,但用户看不到。它是使用javascript按计划完成的

    最“实时”的方法是使用HTTP隧道技术:客户端对映射到servlet的特殊URL执行HTTP GET,而servlet不会关闭连接。它只是把它打开。当它有东西要发送给客户机时,它会写入流。所以,您得到了服务器到客户端的推送,但初始连接仍然是由客户端执行的

  2. # 2 楼答案

    你在拉Pulling是指客户端从服务器请求数据,服务器根据该请求进行操作

    如果服务器在接收到新数据时会向您发送数据,那将是push

    所以区别在于:推送是由服务器启动的,拉取是由客户端启动的

    财务数据通常通过TIBCO Rendezvous等软件传输。发布者将消息发送给守护进程,订阅该主题的侦听器从守护进程获取消息

  3. # 3 楼答案

    我不知道“流式金融数据”是什么意思,但推/拉的概念并不局限于金融行业:)

    一般来说,pull策略意味着客户机通过预定义的通信通道(在您的情况下是现有和已知URL的套接字)主动获取数据,并轮询该通道以获取新信息

    与此相反,您有推送策略,在推送策略中,您会收到任何更改的通知,并提供通信通道,并向连接的合作伙伴注册。例如,你有一个网络服务,你的连接伙伴会在他认为合适的时候向该网络服务发布信息。这个概念见http://en.wikipedia.org/wiki/Observer_pattern

    希望这能有所帮助

  4. # 4 楼答案

    这是两种基于网络的推送技术

    至于浏览器支持:

    • Chrome/Safari/Firefox6支持这两种功能
    • Opera支持EventSource和WebSocket,但默认情况下禁用了后者
    • Firefox4支持websockets,但默认情况下已禁用
    • IE<;10都不支持,如果你幸运的话,IE10可能支持一个

    有很多拉取技术,包括HTTP和ajax