创建wss服务前台连不上怎么回事哦

yinjisong

按照Gatewayworker ssl证书配置的代码设置的使用阿里云申请的免费证书,并且也将域名解析到了该服务器,但是前端还是连接不到wss,如下图所示,端口也开放了。
截图
是我少些了哪些配置吗

530 4 0
4个回答

yinjisong

截图
上网找了一下其他人的配置,前端还是连不上,debug模式下有如上图的提示。

  • yinjisong 2022-06-10

    SSL handshake error: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
    error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown

  • six 2022-06-10

    客户端代码呢?

  • yinjisong 2022-06-10

    var ws = new WebSocket("wss://123.57.156.229:8282"); //建立WebSocket连接
    ws.onopen = function (evt) {
    var obj = '{"type":"ping"}'
    setInterval(()=>{
    ws.send(obj)
    },50000)
    // layer.msg('服务器连接成功,可同步取消线上任务~',{shade:0.1,icon:1,time:1000});
    };
    这是客户端的代码,就是简单的new WebSocket

  • yinjisong 2022-06-10

    奇怪了,安卓客户端他们可以连上我的服务端,但是网页端连不上

walkor

访问的域名和证书不匹配。
比如证书是abc.com的,但是客户端用的是 bcd.com去连接。
连接的时候不能用ip,手册有强调。

  • yinjisong 2022-06-10

    我的网页网址是https://helper.608631.com,websocket配置的地址是socket.608631.com,我是否应该在网页使用new WebSocket("wss://socket.608631.com"),然后在服务器端设置nginx代理或者Apache代理,将域名再代理到127.0.0.1:8282这个端口上啊

  • walkor 2022-06-10

    nginx代理wss和gatewayWorker设置wss两种方案只能选一种。
    如果你gatewayWorker设置了wss并且证书对应的域名是helper.608631.com,端口是442,客户端直接连 wss://helper.608631.com:442 就行了。就不用连nginx或者apache代理了。

    反过来如果要用nginx代理的话,gatewayWorker 不能设置wss。

  • yinjisong 2022-06-24

    是不是我的gatewaywork根目录放的不对,应该把整个gatewayworker的根目录放到thinkphp的public目录下啊

echo_class

问题解决了吗?
我也遇到了相同的问题。是按照文档上的第二种方法来做的,使用 nginx 代理,修改 nginx 下的 conf 文件后,使用 wss 访问报错,使用 ws 是没问题的。

JackDx

nginx 代理代理多好

  • 暂无评论
🔝