1

我正在使用 Firefox Quantum (64.0) 并且 JS 命令new WebSocket()返回与规范不同的对象:

MDN 网络套接字

HTML 标准

影响我的应用程序的缺失属性是.close()函数,但还有另一个区别。

您可以在下图中看到返回的对象具有.websocket包含所有缺失对象的属性。 网络套接字对象

难道我做错了什么?使用旧版本的 Firefox(在 Quantum 之前,如 43)或使用 chrome 时,它​​可以正常工作。

如果是Firefox的问题,我该如何报告?

编辑:

添加一些代码示例:

var exampleSocket = new WebSocket("wss://echo.websocket.org");
exampleSocket.close() // Throw "exampleSocket.close is not a function" in Firefox Quantum, works on chrome
exampleSocket.websocket.close() // Works on Firefox, Throw on chrome.

exampleSocket.websocket不在文档中。

Edit2:我在其他具有 60、61、63 和 64 版 Firefox 的机器上进行了测试,问题只发生在我的机器上。当我从 Firefox 中删除所有插件时,它又开始工作了。

4

1 回答 1

2

问题是我安装的websocketsniff 插件

它甚至声明 WebSocket 对象会改变:

检查 Firefox 中的 websocket 框架。如何使用: 1) 打开开发者工具 2) 打开“Websocket Sniffer”选项卡

此扩展将本机 websocket 对象替换为自定义对象。这是肮脏的黑客,但这是一个单一的决定

于 2018-12-12T16:08:23.080 回答