1

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

4

3 回答 3

1

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

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

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

但请记住,只要客户下载了剪辑,他们就可以根据需要完整播放它。不幸的是,除了切换到流媒体方法之外,没有其他方法可以阻止这种情况。如果保护您的内容是一个优先事项,我建议进行此更改。

于 2009-04-10T15:19:16.473 回答
0

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

于 2009-04-10T15:00:42.463 回答
0

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

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

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

于 2009-04-20T19:16:28.067 回答