天天看点

项目运行时一直发http://localhost:8080/sockjs-node/info?t=1462183700002请求

项目运行时一直发http://localhost:8080/sockjs-node/info?t=1462183700002请求

    • 【方案1】
    • 【方案2】
    • 【方案3】

server是webpack创建的,运行在localhost:8080,部署到服务器后运行就报错

项目运行时一直发http://localhost:8080/sockjs-node/info?t=1462183700002请求

网上的解决方案

【方案1】

这个问题:如果是在开发环境,应该是开发的时候网络环境变更导致,比如你切换无线网络,导致开发服务器的IP地址换了,这样开发服务器会不知道如何确定访问源。开发环境中关闭npm dev server,然后重新npm run serve重新构建服务环境就可以了。

如果是生产环境,很大可能是应该是域名和ip映射出问题,重启node,检查重新配置域名和ip映射就可以了。

【方案2】

如果你的浏览器,与NPM服务器,不是同一个机器(不是localhost),那么会导致这个报错。

我搜索了好久,才发现这个是可以在webpackjs里配置的(即vue.config.js):

https://webpack.js.org/config...

module.exports = {
    devServer: {
        sockHost: 'demo.my-domain.com',
        disableHostCheck: true,
    }
}
           

【方案3】

首先sockjs-node是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟,全双工的浏览器和web服务器之间通信通道。

如果你的项目没有用到sockjs,vuecli3 运行npm run serve 之后network里面一直调用一个接口:

http://localhost:8080/sockjs-node/info?t=1556418283950

方案:从根源上关闭此调用

1、node_modules/sockjs-client/dist/sockjs.js

2、代码的1605行注释

// self.xhr.send(payload);

ps:可在代码开发完成后关闭,会同步关闭热加载

个人是参考方案二,

继续阅读