当客户端工作时服务器已关闭http连接时,客户端Javascript可以检测吗?

时间:2009-04-10 14:53:02

标签: javascript connection detect

在我的应用程序中,客户端是浏览器中的一组Javascript函数,它可以完成一些工作 - 例如,播放剪辑。 它使用XmlHttpRequest与服务器通信。 但是,允许服务器突然关闭连接,因为没有其他方式可以中断客户端。 在播放剪辑时,客户端是否可以检测到连接已关闭,因此打印邮件并删除页面? 任何帮助赞赏。 谢谢, 阿尼尔

3 个答案:

答案 0 :(得分:1)

如果剪辑流式传输到客户端,您可以停止提供它。

但是,似乎正在下载剪辑,然后通过浏览器播放。在这种情况下,最好使用CookieOfFortune描述的看门狗方法:定期轮询服务器(每秒一次)并让它以微小的确认消息进行响应。当连接关闭时,让服务器以负面消息回应。

不幸的是,如果不使用类似彗星的系统,很难让服务器“发送”指示会话关闭的消息。

请记住,一旦客户端下载了剪辑,他们就可以在需要时完整播放。不幸的是,除了转换为流媒体方法之外,没有办法阻止它。如果确保您的内容安全,我建议进行此更改。

答案 1 :(得分:0)

您可以轮询XmlHttpRequest对象,因此只需尝试每隔一段时间发送一次心跳以查看连接是否已关闭。否则,服务器必须发送一些信号告诉客户端它将关闭连接。

答案 2 :(得分:0)

似乎服务器无法通知客户端连接已关闭;但是建议的轮询方法不如通知那么有效。

我通过指定在NEXT Get请求中解释客户端将被告知其会话无效。

这是通过URL重写实现的 - 在Javascript函数发送的每个请求上附加“jsessionid = [id]”。 servlet存储当前的会话ID。