文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

解决 This request has been blocked; this endpoint must be available over WSS.

2023-09-17 19:02

关注

使用WebSocket在本地是没有问题的,能够和前端进行正常交互,但是将项目部署到服务器上,发现和前端建立不了WebSocket的连接,打开浏览器控制台报错:This request has been blocked; this endpoint must be available over WSS.

首先我们要明白 wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL)。

利用nginx代理wss【通讯原理及流程】

(1)、客户端发起wss连接连到nginx

(2)、nginx将wss协议的数据转换成ws协议数据并转发到Workerman的websocket协议端口

(3)、Workerman收到数据后做业务逻辑处理

(4)、Workerman给客户端发送消息时,则是相反的过程,数据经过nginx/转换成wss协议然后发给客户端

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 请求一样。

前提,服务器已经配置好了Nginx。如果没有配置的可以去网上搜索,很多资料的。如果找不到资料的小伙伴可以看文章的最后,我会把我的nginx配置贴出来。

在前端将:ws:// 修改为:wss://即可,同时,后面不要跟IP地址加端口,要使用网站的域名,例如:

本地websocket链接:ws://192.168.0.46:8781/tf/webSocket/huozhu20220819> 那么更新到哦服务器的时候,链接应该修改为:wss://网站域名/tf/webSocket/huozhu20220819

注意:这里直接使用域名是在Nginx做了代理,可以根据url自动匹配到对应的IP地址+端口

server{    listen 80;    listen 443 ssl;    server_name 域名;     ssl on;    ssl_certificate 证书.crt;    ssl_certificate_key 证书.key;    ssl_session_timeout 5m;    ssl_session_cache shared:SSL:50m;    ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    ssl_prefer_server_ciphers on;        location /wss/  {        proxy_pass http://127.0.0.1:82/;        #通过配置端口指向部署websocker的项目     proxy_http_version 1.1;         proxy_set_header Upgrade $http_upgrade;         proxy_set_header Connection "Upgrade";         proxy_set_header X-real-ip $remote_addr;     proxy_set_header X-Forwarded-For $remote_addr;     }}

感谢:
1、https://www.jianshu.com/p/581d4b777615
2、https://blog.csdn.net/qq_35808136/article/details/89677749

来源地址:https://blog.csdn.net/weixin_47316183/article/details/126450623

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯