workerman-chat 部署在https 环境下 配置 wss 问题

5 篇文章 0 订阅

直接说我自己遇到的情况吧,

之前 workerman-chat  一直部署在 http 环境下,因为需要内嵌包到微信小程序,域名调整为 https

那么问题来了,  https 是不加载  http 的资源的,ws 的志愿同样也是不能使用.

我的环境是  nginx   网站已经配置好ssl 了,这里就不介绍  ssl 配置了,下面就直接以workerman-chat 的demo来讲吧

 解决办法 大概  2步:

1.nginx配置:新增

目的是将 wss 转发到  http://127.0.0.1:7272

    	location /wss {
        proxy_pass http://127.0.0.1:7272;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_connect_timeout 5s; #配置点1
        proxy_read_timeout 60000s; #配置点2,如果没效,可以考虑这个时间配置长一点
        proxy_send_timeout 60000s; #配置点3
    }

2.修好 web/index.php   Websocket配置信息

一定记得 后面加  域名后面加/wss   像下面这样

将 ws = new WebSocket("ws://ss.sss.com:7272");   

修改为:

ws = new WebSocket("wss://ss.sss.com/wss");    //修改这个地址

        // 如果浏览器不支持websocket,会使用这个flash自动模拟websocket协议,此过程对开发者透明
        WEB_SOCKET_SWF_LOCATION = "/swf/WebSocketMain.swf";
        // 开启flash的websocket debug
        WEB_SOCKET_DEBUG = true;
        var ws, name, client_list = {};
        // 连接服务端
        function connect() {
            // 创建websocket
            ws = new WebSocket("wss://你的域名/wss");    
            // 当socket连接打开时,输入用户名
            ws.onopen = onopen;
            // 当有消息时根据消息类型显示不同信息
            ws.onmessage = onmessage;
            ws.onclose = function() {
                console.log("连接关闭,定时重连");
                connect();
            };
            ws.onerror = function() {
                console.log("出现错误");
            };
        }

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值