在java中长轮询

我编写了用于长轮询的服务器端代码。 我想用java编写客户端程序。 因此,根据长轮询,客户端发送请求,该请求由服务器提供帮助,并且服务器在事件发生时响应请求,然后客户端发送新请求。

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

对HTTPURLConnection的getInputStream的调用会返回阻塞流。 在此流上调用读取将阻止该线程,直到服务器提供数据,您无需继续轮询数据。

在单独的线程中调用read,并在不关闭连接的情况下将HTTPURLConnection保留在范围内。 这可以让你在可用时恢复数据。 从服务器收到200OK后,在同一连接上发回另一个请求以保持打开状态。 (这是因为您没有实现请求超时。)