javascript - 初始化 WebSocket 时 IE11 上的 SecurityError

标签 javascript websocket internet-explorer-11

我们有一个代码,每次打开应用程序时都会创建多个 websocket 实例。

privateMembers.webSocket = new WebSocket(url, protocol);

其中 url 包含身份验证 token 。当应用程序关闭/卸载时,这些实例也会关闭。观察到问题时,应用程序被嵌入(iframe)到另一个应用程序。

我们注意到在浏览器的控制台上记录了一个 SecurityError 异常。当这种情况发生时,下一次初始化时创建的 websocket 数量会减少。例如,我们正在创建 5 个 websocket 实例,下次启动 iframe 时,它​​只会创建 4 个实例,并且会记录此异常。每次卸载应用程序时,我们都会清除计数和数组。

此外,这只发生在最新版本的 IE 11 和 Edge 上。

enter image description here

最佳答案

IE 11 每个主机限制为 6 个 websocket 实例。似乎在最新版本的 IE 11 (11.xxx) 上,似乎有关于如何处理这些实例的更新。

如果我们关闭具有 websocket 连接的 iframe 并且不触发这些实例的 onclose,这些实例仍然存在但没有任何引用(悬空)。

为了解决我们的问题,我们必须检查所有这些 websocket 实例,并确保在我们关闭 iframe 时所有这些实例都已关闭。创建的实例数量减少是由于未关闭的 websocket 实例。

我们仍然没有在最新的 IE 11 版本上找到任何关于此的文档。如果有人能提供这个,那真的很棒,非常感谢。

关于javascript - 初始化 WebSocket 时 IE11 上的 SecurityError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52549799/

相关文章:

amazon-web-services - AWS.ApiGatewayManagementApi() postToConnection 不起作用

python - 使用异步 websockets 时如何使 session 保持事件状态?

javascript - Angular JS 错误 : [$rootScope:infdig] in IE 10 and IE 11 only

html - IE11 中的行重叠显示 : flex

css - 如何去除密码类型的文本框右边缘出现的IE伪元素?

javascript - 如何从 PHP 获取数组并使用数组中的值?

javascript - Ember UI 在测试期间未触发 Ember Controller 操作

javascript - 从 php 调用 Javascript 函数

javascript - 如何修复 React Native Flow Throw Error is Missing Null or Undefined

javascript - 在服务器上是否有将 WebSocket 请求转换为 HTTP 请求的标准?