使用最新的gateway創(chuàng)建wss服務(wù),查看了下,workerman版本是3.3.9。搭建完畢后,火狐能夠正常訪問,顯示如下:
但是chrome一直提示:failed: WebSocket opening handshake was canceled 。我打印了下日志,發(fā)現(xiàn)chrome進(jìn)去在訪問完onConnect方法后立刻訪問了onClose方法。以下截圖是chrome打開頁(yè)面,F(xiàn)irefox中控制臺(tái)的信息:
不知道有沒有人碰上過同樣的問題。以下是我在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';
證書沒有問題,訪問也是通過域名進(jìn)行訪問,同時(shí)防火墻也沒有開啟
$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',
'verify_peer' => false,
)
);
試下
可以了。我搜了下,這個(gè)參數(shù)是用來(lái)開啟是否驗(yàn)證 SSL 證書。代表我的證書有問題么?
證書是阿里云上申請(qǐng)的GeoTrust的泛域名證書,該證書在apache上能正常啟用https服務(wù)。同時(shí),用nginx做代理開啟wss也是可以的