项目场景:
最近在写vue项目的时候经常会遇到这个问题,写着写着浏览器的控制台就会突然抛出下面这个报错(这个报错,目前发现对项目没有任何影响,不影响开发,但是对于有强迫症的我还是想解决一下它)
问题描述:
做vue项目时,突然就报GET http://192.168.32.105:8080/sockjs-node/info?t=1623033929802 net::ERR_CONNECTION_TIMED_OUT这个错误
代码如下:(
try {
self.xhr.send(payload);
} catch (e) {
self.emit('finish', 0, '');
self._cleanup(false);
}
原因分析:
sockjs-node是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全双工的浏览器和web服务器之间通信通道。在项目运行以后,network会一直调用这个接口。如果没有使用,那么就一直会报这个异常。(企业中跟后端联调之后就不会有这个报错了)
解决方案:
方案一: 找到 *node_modules*下的 sockjs-client/dist/sockjs.js 里面的 这么一段代码,大概在1608 行)
try {
} catch (e) {
self.emit('finish', 0, '');
self._cleanup(false);
}
看了好多博客说把这个注释掉之后会有热更新的问题,我目前还没有遇到,因为这个文件是放在npm的文件下的,所以只是建议自己在开发过程中临时关闭,后续还是得打开的,没有太大的影响。
方案二: 这个办法就不用注释办法1中的代码了,在vue.config.js文件中的module.exports中的devServer中加上host: ‘localhost’,也是可以解决的。
module.exports = {
devServer: {
host: 'localhost',
}
}
|