gpt4 book ai didi

Java 检查 HttpResponse 是否仍然存在

转载 作者:行者123 更新时间:2023-11-29 09:09:25 25 4
gpt4 key购买 nike

Java servlet 有没有办法检查 httpresponse 是否仍然“有效”?例如,在我的情况下,我从浏览器向 servlet 发送一个 ajax 请求。在这种情况下,它是一个轮询请求,因此它最多可以轮询 5 分钟,当 servlet 准备好响应数据时,我想检查用户是否关闭了浏览器窗口,或移动到另一个页面等。在其他换句话说,检查发送数据到响应是否真的会做任何事情。

最佳答案

一般来说,这个问题可以通过在实际消息之前发送一个虚拟负载来解决。

如果套接字被切断,则会抛出 IOExceptionSocketException 或类似的东西(取决于库)。从技术上讲,浏览器应该在您离开页面或关闭浏览器(或任何类似的东西)时切断连接,但我发现实现细节可能会有所不同。例如,较旧版本的 FF 会在离开页面时适本地关闭连接,但较新版本(尤其是在使用 AJAX 时)往往会使连接保持打开状态。

这是您可以在实际消息之前使用虚拟数据包的主要原因。另一个重要的考虑因素是超时。我之前做过轮询,你要么需要实现某种心跳来保持连接有效,要么增加服务器超时(但请记住,某些浏览器也可能有超时 - 你无法控制的超时)。

我强烈建议尝试支持(至少部分)Websocket 解决方案,而不是通过 AJAX 进行轮询或推送。

关于Java 检查 HttpResponse 是否仍然存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13189035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com