vue websocket动态代理配置问题

6,202 阅读1分钟

在使用websocket的时候,做了如下配置(端口8080由我前端启动的端口决定):

并在vue.config.js中做了如下配置,

就能实现后端的正常连接

考虑一种场景:为啥服务器启动的端口一定是8080?变了怎么办?nginx服务和前端服务没在一台服务器上面怎么办?localhost怎么改写?

参考http请求的写法后,做了如下改动:

发现根本连不上

再看http的请求,压根就没有配置localhost这个东西,那他为什么就能跳转呢?为什么会把localhost:8080拼接在前面呢?

猜想应该是vue webpack的默认配置里面有针对http请求添加前面的ip和端口(这一块如果看webpack的打包原理可以看下是不是这样的

那针对上面ws的协议应该怎么解决呢?

可以在代码里面做如下调整

另外websocket是支持跨域的(为什么websocket支持跨域?websocket和http协议有什么区别?后续查资料做下补充),不用考虑不同的ip端口的跨域问题,所以可以直接把连接地址写成配置文件的形式当成变量引入

类似这样:把具体的地址写成一个配置项传入即可