问题描述
我正在开发一个 Chrome 扩展程序,我希望能够处理数据,因为它们是通过我不拥有的网站上的 WebSocket 连接来的。 不知何故,我想挂上 .onmessage 事件,以便我可以在该站点上使用这些数据做一些事情。但我不知道如何挂钩这个事件。该网站使用 webpack 进行了缩小,并且没有可用于重用某些全局 websocket 对象的全局变量。
我尝试过但没有奏效的方法:
- 找到带有 websocket 连接的全局窗口变量(没有这样的变量)
- 通过分析开发人员工具中的“网络”选项卡,重现与服务器的连接。 (服务器没有响应代码 101,但本机 websocket 连接会。我认为服务器可能会阻止相同类型的第二个 websocket 通道)
这是我尝试重现连接的代码:
var websocket;
createWebSocketConnection();
function createWebSocketConnection() {
if('WebSocket' in window) {
websocket = new WebSocket(host);
console.log("======== websocket ===========",websocket);
websocket.onopen = function() {
websocket.send("o");
};
websocket.onmessage = function (event) {
var received_msg = JSON.parse(event.data);
console.log(received_msg)
};
websocket.onclose = function() { alert("==== web socket closed ======"); };
}
}
所以我认为最好的解决方案是连接到网站上的现有代码。 我在想,也许我可以重写原生的 WebSocket .onmessage 函数,这样它就可以做它应该做的事情,而且还会调用我的自定义函数?有没有更好的办法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)