java中的长轮询

Ash*_*ana 4 java client long-polling

我已经为长轮询编写了服务器端代码。我想用java编写客户端程序。因此,根据长轮询,客户端发送一个请求,该请求得到服务器的帮助,服务器在发生事件时响应该请求,然后客户端发送一个新请求。

所以我面临的麻烦是用java编写的客户端。发送请求后,如果服务器已响应,如何继续检查客户端。我应该以什么时间间隔继续向服务器发送请求。我完全糊涂了。我是 Web 技术的初学者。我试过谷歌搜索这个,但所有的例子都是基于客户端是一个 java 脚本或 JSP。任何人都可以提供指向正确教程的链接,其中客户端是 Java HTTp 应用程序或提供一个示例(即实现长轮询)。

Raj*_*aji 6

对 HTTPURLConnection 的 getInputStream 的调用返回一个阻塞流。在此流上调用读取将阻塞线程,直到数据从服务器可用,您无需继续轮询数据。

在单独的线程中调用读取并将 HTTPURLConnection 保持在范围内而不关闭连接。这应该可以让您在可用时取回数据。从服务器收到 200OK 后,在同一连接上发回另一个请求以使其保持打开状态。(这是在您尚未实现请求超时的情况下。)