2012-07-11 34 views
1

这是针对本地主机运行的,其他所有传输都禁用以进行测试。socket.io传输'flashsocket'需要5秒钟才能在IE 8上启动

在IE和其他浏览器上测试其他传输时,没有这种滞后。

任何可以做到这一点?我已经安装了最新的Adobe Flash,运行Windows 7 64位,socket.io 0.9。

+0

不知道这个链接是否可以帮助[链接] https://github.com/LearnBoost/socket.io/issues/458 [/ link] – 2012-07-11 04:55:44

+0

感谢您的链接。我认为堆栈溢出不会导致延迟,并且提到的错误会导致错误。除此之外,这个bug早已修复(10个月前)。我编辑了我的帖子,以明确我正在运行最新版本的socket.io。 – 2012-07-11 07:18:45

+0

可能是相关的? https://github.com/gimite/web-socket-js/issues/120正如下面指出的那样,IE8将会使用Flash套接字,因为你已经安装了Flash。 – 2013-02-25 18:49:36

回答

4

问题是如何Flash policy server工作:它首先尝试连接到端口843,并获得策略文件。如果5秒内没有响应,它会尝试从服务器获取策略文件 - 而socket.io在内部提供此文件。如果您想防止出现这种情况,您可以从上面的链接运行您自己的Flash策略服务器 - 这会花费您几分钟的时间,并显着改善用户体验。

+1

就是这样!安装https://github.com/3rd-Eden/FlashPolicyFileServer加速的东西!附:我已经为这个问题设立了一个奖励,我相信你的回答是及时的,但是在我注意到你的答案之前,赏金到期了。让我知道你是否来到赏金。 :)然后,我会设置另一个+50,所以我可以奖励给你。 – 2013-03-01 06:33:16

+2

有没有必要 - 赏金提升了你的问题,所以我能够看到它并帮助你,但我不是赏金猎人;) – 2013-03-01 13:05:53

+0

我+1了你的评论(除了答案,当然)。这可以帮助你,并不会伤害我:) – 2013-03-04 03:42:28

0

我认为问题在于IE 8不支持websocket,当您尝试使用flashsocket时,websocket会退回到长查询。即使IE 9本身不支持套接字。您可以使用IE 10提供的本机支持,但默认情况下它是禁用的。在这里看看browsers support websockets

您遇到的五秒钟等待是因为long-polling。服务器持有该请求,直到超时或某些信息到达。看到这里的区别socket.io - XHR polling vs flashsocket and websocket

+0

WebSocket似乎没有涉及到这里。当用这些协议'websocket,flashsocket,htmlfile'启动socket.io服务器时,会出现这种延迟,但是当使用'websocket,htmlfile'启动它时,不会有任何延迟。另外,在前一种情况下,它将使用'flashsocket',因为IE8明显支持Flash。 FlashSocket!= WebSocket。 – 2013-02-25 02:58:12

相关问题