通过Polyfill的IE11 SSE永远不会终止连接?

时间:2015-05-26 15:30:13

标签: javascript internet-explorer xmlhttprequest server-sent-events polyfills

我一直在玩服务器发送事件和等效的Polyfill for IE,并且有一个明显的例外情况。当我关闭选项卡/浏览器或重新加载页面时,客户端和服务器之间的连接将无限期地保持打开,因为我的示例SSE服务器每5秒推送一次内容。更糟糕的是,我每次都可以点击重新加载并获得新的连接,这是DOS攻击网络服务器的潜在途径,因为我可以创建大量永远不会关闭的连接。本机支持SSE的浏览器甚至依赖于polyfill的浏览器(IE除外)都不会出现这种行为。

我正在使用的示例服务器是: https://github.com/kljensen/golang-html5-sse-example/blob/master/server.go

为此网页提供服务: https://github.com/kljensen/golang-html5-sse-example/blob/master/templates/index.html

我添加了以下polyfill: https://github.com/Yaffle/EventSource/blob/master/eventsource.js

我与许多其他polyfill和服务器实现有相同的行为。我可以查看流量​​并查看服务器的TCP连接继续发送数据并在IE关闭后很长时间从客户端获取ACKS(至少10-30分钟,可能更长)。从调试IE,似乎调用xhr.abort()从未实际中止/关闭连接。

this one

等问题中,我在IE中看到过关于xhr中止的类似抱怨

我很好奇是否有其他人遇到过这个问题。从SSE的研究来看,几乎所有的消息来源都说你可以使用polyfill用于IE /不支持的浏览器,而且工作效果很好,但这似乎是一个相当严重的缺点,我很惊讶似乎没有任何信息关于这个具体问题。

0 个答案:

没有答案