【苍穹】完美解决由于nginx更换端口号导致无法使用Websocket

一、报错信息 

进行到websocket开发的过程中,遇到了前端报错,无法连接的提示:

经过F12排查很明显是服务端和客户端并没有连接成功。这里就涉及到之前的坑,现在需要填上了。

二、报错原因和推导

        应该还记得刚开苍穹的第一天配置前端环境时,会发现ngnix启动不了吧?排查原因后,发现是默认的80端口被系统进程占用了,你为了方便后续的测试,将ngnix的默认端口改成了8888。

系统默认的80端口是被http服务给占用了

      与此同时,苍穹的前端环境几乎是固定死了的,也就是有一些配置方面的东西,还是按照着80端口来的,这样一来,Websocket自然是连接不上的。

        所有就衍生出下面两种解决方法

三、解决方法

1. 修改ngnix配置文件 为80端口,同时终止原先系统进程占用的80端口 

修改配置文件ngnix.conf server listen 80

停用80 端口服务

C:\Users\goodboy>net stop http
下面的服务依赖于 HTTP Service 服务。
停止 HTTP Service 服务也会停止这些服务。
   World Wide Web 发布服务
   SSDP Discovery
   Print Spooler你想继续此操作吗? (Y/N) [N]: y
World Wide Web 发布服务 服务正在停止.
World Wide Web 发布服务 服务已成功停止。
SSDP Discovery 服务正在停止.
SSDP Discovery 服务已成功停止。
Print Spooler 服务正在停止.
Print Spooler 服务已成功停止。
HTTP Service 服务已成功停止。

重启ngnix服务器

2. 一劳永逸,保持ngnix端口不变,修改前端环境信息(推荐)

在前端代码js中,先后找到app.d0aa4eb3.js 和 app.d0aa4eb3.js.map文件

打开: app.d0aa4eb3.js  

查找: localhost

修改:在localhost后添加 现在你的ngnix监听的端口号

例如我的: localhost:8888

打开: app.d0aa4eb3.js.map

查找:process.env.VUE_APP_SOCKET_URL

替换成: ws://localhost:8888/ws/

四、测试

重启服务器

还是报错,考虑浏览器缓存(可以清除浏览器缓存),开一个InPrivate 浏览

成功,测试一下能否及时响应新订单:

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值