网络错误 12152:Edge 和 IE 11 中的 WebSockets
Posted
技术标签:
【中文标题】网络错误 12152:Edge 和 IE 11 中的 WebSockets【英文标题】:Network Error 12152: WebSockets in Edge and IE 11 【发布时间】:2015-10-12 11:34:08 【问题描述】:我有一个使用 websockets 安全 (WSS) 的站点,并且在 chrome 中运行良好。
在 IE 和 Edge 中进行测试也可以,但是在浏览器控制台中我得到Network Error 12152
,如果实施,这也会触发websocket.addEventListener("error",function())
。
实际上一切正常,我只是收到了这个似乎没有破坏任何东西的错误。
从浏览器端关闭套接字时触发错误
EDGE 中的标题
更多信息:我使用的代码示例
//connect via wss then
ws.addEventListener("error",function(event) // this hits when Socket is closed)
ws.addEventListener("open",function()
ws.addEventListener("message",function(event)
//do stuff
ws.Close()
)
)
进一步确认问题
我去了https://www.websocket.org/echo.html,该站点具有测试websocket连接的能力。我让它连接到我的服务器。可以毫无问题地打开连接。然而,同样地,我的代码也遇到了问题。当我单击断开连接按钮时,此站点也会引发错误。见下图。这是 IE/Edge 中的错误吗?
我的服务器没有正确断开连接? 我将上述站点与默认目的地(他们的 websocket 服务器)一起使用,而不是我的。没有错误。但是在断开连接时连接到我的会出现错误。
可能是什么问题?
谢谢
【问题讨论】:
这与 ajax 帖子的@JaromandaX 无关,您最不想要的是在设置 websocket 时关闭套接字连接......而 websocket 与 ajax 完全不同。 是的,很抱歉 【参考方案1】:查看 Microsoft 知识库文章,您没有在连接设置中返回预期的响应/标头
来自microsoft knowledge base
12152 ERROR_HTTP_INVALID_SERVER_RESPONSE
无法解析服务器响应。
如果您查看 Server Handshake Response 部分,来自developper docs of mozilla
当它收到这个请求时,服务器应该发送一个看起来很奇怪(但仍然是 HTTP)的响应,看起来像这样(记住每个标头都以 \r\n 结尾,并在最后一个标头后面加上一个额外的 \r\n ):
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
因此,我建议您检查您的标头并查看您在握手时发送了哪些响应,以便您与协议保持一致。
【讨论】:
标题对我来说看起来不错。如果不正确,我在 C# 中的 websocket 服务器将终止连接。我会在问题中添加标题的屏幕截图 是的,标题看起来不错,异常消息状态和跟踪日志是什么?它究竟在什么时候触发?握手时,握手后?在接收握手?在推送第一个数据时?您用来建立连接的代码是什么? 查看触发错误的时机。这是从浏览器端关闭连接的时候。我将如何调出跟踪日志?我还将提供我如何操作的示例代码。 刚发现我从另一个站点收到同样的错误。见问题。 它可能需要边缘的原因代码/即***.com/questions/18803971/… 如何获取错误。尝试通过执行console.log(event);
并在控制台中查看属性和输出来分析事件对象。你碰巧使用这个库吗? github.com/websockets/ws/tree/master/examples【参考方案2】:
我已经修复了 IE 浏览器中的相同错误。检查websocket首字母的大小写。
非IE浏览器:
Upgrade: **w**ebsocket
IE浏览器:
Upgrade: **W**ebsocket
【讨论】:
以上是关于网络错误 12152:Edge 和 IE 11 中的 WebSockets的主要内容,如果未能解决你的问题,请参考以下文章
XMLHttpRequest:网络错误 0x80070005,在 Microsoft Edge(但不是 IE)上拒绝访问
prepend/append 适用于 Chrome 和 Firefox,但不适用于 IE11 和 Edge
vue.esm.js(Microsoft IE 11 和 Microsoft Edge)中的空白页和“未知名称”错误 [关闭]