我已经编写了用于长轮询的服务器端代码。我想用java编写客户端程序。因此,根据长轮询,客户端发送请求,该请求由服务器提供帮助,并且服务器在事件发生时响应请求,然后客户端发送新请求。
所以我面临的问题是客户端是用java编写的。发送请求后,如果服务器已响应,如何继续检查客户端。我应该以什么时间间隔将请求发送到服务器。我完全糊涂了。我是Web技术的初学者。我尝试使用Google搜索,但所有示例都基于客户端是java脚本或JSP。任何人都可以给出一个正确的教程链接,客户端是一个java HTTp应用程序或提供一个例子(即实现长轮询)。
答案 0 :(得分:4)
对HTTPURLConnection的getInputStream的调用会返回阻塞流。在此流上调用读取将阻止该线程,直到服务器提供数据,您无需继续轮询数据。
在单独的线程中调用read,并在不关闭连接的情况下将HTTPURLConnection保留在范围内。这可以让您在可用时返回数据。从服务器收到200OK后,在同一连接上发回另一个请求以保持打开状态。 (这是因为您没有实现请求超时。)