1.禁用函數(shù)都刪除了
2.Gatewaywork運(yùn)行成功了
3.端口也放行了
4.協(xié)議也修改了websocket
5.我下載的是新版的Gatewaywork demo windows版本 在windows本地一切正常;但說過新版的windows和linux兼容了 且在linux中能啟動(dòng)
5.ssl也配置了
但是前端就是握手不成功。。。。。。。不顯示報(bào)錯(cuò)原因
debug下
@remix789 發(fā)的手冊(cè)里注意事項(xiàng) 3 證書一般是與域名綁定的,所以測(cè)試的時(shí)候請(qǐng)使用證書對(duì)應(yīng)的域名去連接,不要使用其它域名或者ip去連
看下是不是這個(gè)問題??吹侥闶怯胕p連的,沒用證書的域名連
服務(wù)端debug方式運(yùn)行,看下報(bào)錯(cuò)
還有你的證書是自己創(chuàng)建的還是機(jī)構(gòu)給的,看你截圖注釋里自己創(chuàng)建的證書要設(shè)置 allow_self_signed => true
建議ssl用nginx代理 http://www.wtbis.cn/doc/workerman/faq/secure-websocket-server.html#nginx%E9%85%8D%E7%BD%AE%E5%8F%82%E8%80%83
用nginx代理時(shí)gatewayWorker就不能配置ssl了,否則會(huì)沖突
按照文檔 http://www.wtbis.cn/doc/gateway-worker/secure-websocket-server.html
// 證書最好是申請(qǐng)的證書
$context = array(
// 更多ssl選項(xiàng)請(qǐng)參考手冊(cè) https://php.net/manual/zh/context.ssl.php
'ssl' => array(
// 請(qǐng)使用絕對(duì)路徑
'local_cert' => '磁盤路徑/server.pem', // 也可以是crt文件
'local_pk' => '磁盤路徑/server.key',
'verify_peer' => false,
// 'allow_self_signed' => true, //如果是自簽名證書需要開啟此選項(xiàng)
)
);
// websocket協(xié)議(端口任意,只要沒有被其它程序占用就行)
$gateway = new Gateway("websocket://0.0.0.0:443", $context);
// 開啟SSL,websocket+SSL 即wss
$gateway->transport = 'ssl';
$context要傳遞到 new Gateway 里,你沒傳
感覺你這個(gè)問題亂七八糟的
之前你context明顯沒傳,然后你說你之前windows一切正常,但服務(wù)器上不行,context都沒傳進(jìn)去windows怎么可能正常?
讓你截圖服務(wù)器上的代碼,你截圖里明明寫的是0.0.0.0,然后你有說你實(shí)際用的是127.0.0.1 !
??