websocket 从ip端口升级https域名模式

做系统升级的时候前端有用到websocket做数据实时更新,之前用的websocket连接时ip加端口模式:

this.ws = new WebSocket("ws://192.168.10.63:15674/ws")

这种模式是没有问题的,但当项目的访问从http升级到https的时候,发现websocket连接不上了

前端报错了!!!让人头疼的错误~~

遇到问题还得解决问题,于是就硬着头皮整问题,于是发现websocket的连接有2种方式,

this.ws = new WebSocket("ws://192.168.10.63:15674/ws")

this.ws = new WebSocket("wss://域名/ws")

ws和wss2种方式;

WebSocket可以使用 ws 或 wss 来作为统一资源标志符,类似于 HTTP 或 HTTPS。其中 ,wss 表示在 TLS 之上的 WebSocket,相当于 HTTPS。默认情况下,WebSocket的 ws 协议基于Http的 80 端口;当运行在TLS之上时,wss 协议默认是基于Http的 443 端口。说白了,wss 就是 ws 基于 SSL 的安全传输,与 HTTPS 一样样的道理。所以,如果你的网站是 HTTPS 协议的,那你就不能使用 ws:// 了,浏览器会 block 掉连接,和 HTTPS 下不允许 HTTP 请求一样。

那赶快多加了一个s然后换成域名,结果还是报错了,

upstream  backend  {
	server  127.0.0.1:15674;
}

server {
    location /ws {
   		 proxy_pass http://backend;
   		 proxy_http_version 1.1;
    		 proxy_set_header Upgrade $http_upgrade;
   		 proxy_set_header Connection "upgrade";
	}
}

 

至此,websocket在https域名模式下的连接正常!!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值