使用最新的gateway创建wss服务,查看了下,workerman版本是3.3.9。搭建完毕后,火狐能够正常访问,显示如下:
但是chrome一直提示:failed: WebSocket opening handshake was canceled 。我打印了下日志,发现chrome进去在访问完onConnect方法后立刻访问了onClose方法。以下截图是chrome打开页面,Firefox中控制台的信息:
不知道有没有人碰上过同样的问题。以下是我在gateway的start_gateway.php中的配置:
$context = array(
'ssl' => array(
'local_cert' => '/var/www/html/gateway_worker/ssl/214011751810206.pem', // 或者crt文件
'local_pk' => '/var/www/html/gateway_worker/ssl/214011751810206.key',
)
);
$gateway = new Gateway("websocket://0.0.0.0:8282",$context);
$gateway->transport = 'ssl';
证书没有问题,访问也是通过域名进行访问,同时防火墙也没有开启
刚通过nginx代理访问,chrome和Firefox都能够正常访问。
证书是申请的还是自己生成的?如果是申请的,是哪里申请的?
试下
可以了。我搜了下,这个参数是用来开启是否验证 SSL 证书。代表我的证书有问题么?
证书是阿里云上申请的GeoTrust的泛域名证书,该证书在apache上能正常启用https服务。同时,用nginx做代理开启wss也是可以的
'verify_peer' => true后,Firefox和chrome都不能访问了。
verify_peer => false
@1:verify_peer => false 这样是可以访问的,请问这个参数是什么意义呢?