我试图做一些非常奇怪/愚蠢的事情,我正在尝试为XHR请求构建一种Websocket代理。
假设您在页面上有一个组件,它不断地通过XHR(GET)请求资源,这是我想要实现的流程:
所以我现在的麻烦是无法使用来自Websocket的响应数据“模拟”XHR请求的完成,是否有任何可以触发的事件或方法?
有人可以就此提出一些想法或解决方案吗? 提前谢谢。
我目前的代码:
XHR.prototype.open = function (method, url, async, user, pass) {
const self = this;
function getter() {
console.log('get responseText');
delete XHR.responseText;
// var ret = XHR.responseText;
}
function setup() {
Object.defineProperty(XHR, 'responseText', {
get: getter,
configurable: true
});
}
setup();
socket.emit('req', url);
socket.on('reqr', data => {
var event = new Event('loadend');
setup();
self.dispatchEvent(event, data);
// return data;
});
// this._url = url;
// open.call(this, method, url, async, user, pass);
}