webSocket部署到远程服务器遇到的坑

本博所有内容都在个人博客橙寂博客

问题

昨天碰到个很奇怪的问题,我写了个webSocket通讯,但是我本机部署是好好的,部署到远程服务器上就不行。很纳闷。我就排查了下问题。

排查过程

1.首先我在代码中写死ip去连接。报302不行,这个是跨域问题。跨域是咋回事的就是项目访问路径时域名但是你连接socket用的是ip所以就跨域了。

2.然后我我就直接使用ip去访问项目不使用域名。这时ok了?????我一脸懵逼。所以问题关键点找到了是nginx域名转发的原因。所以就上网查了下发现果然很多人跟我遇到了一样的问题。这里我找到了解决方案。

解决方案

location / {

            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";

   }

上面那两句是做了一个外网穿透,具体原因是为什么我也没理解,有哪位大哥理解了可以告诉一下我。感激不尽。

webSoket连接部分源码

前台

  var websocket = null;
    var Ip = window.location.host;
  if ('WebSocket' in window) {
         websocket = new WebSocket("ws://"+Ip+"/ws/dkuserSocket
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值