Java的HttpServletResponse没有isClientConnected方法

时间:2011-09-30 05:42:30

标签: java servlets

我正在使用java servlet实现一个长轮询http连接。

我怎么知道http客户端在任何情况下仍然有效?目前,我所做的是将一个字节写入输出流并刷新数据。如果存在IO异常,则客户端已经死亡。

但是在ASP.NET中有一个属性Response.IsClientConnected可以查看客户端是否处于活动状态而不向输出流写入任何内容。

我想知道如何在java servlet中开发。我不想继续将数据写入http响应流,因为它可能会花费网络费用。

提前致谢。

2 个答案:

答案 0 :(得分:3)

使用Servlet API很难实现这一点。虽然低级别的Socket API提供此功能(Socket.isConnected()),但任何更高级别的API都无法提供相同的功能。不确定是否有使用Servlet API的强制措施,或者您可以使用低级套接字API。

答案 1 :(得分:-1)

也许你采取了错误的做法?开发HTTP协议以用于请求 - 响应样式,它不适合用于长轮询。事实上,在客户端获得服务器响应之前,应尽可能延迟。

你所描述的案例看起来像是一个好旧套接字的工作。