如題,移動端用ws是能夠成功連接的,所以我在pc端用wss進(jìn)行了類似的思路和步驟。
1.在nginx配置中添加了如下代碼
location /websocket/ {
proxy_pass http://我的公網(wǎng)IP:端口號;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
2.在start_gateway.php中添加以下代碼
// 證書最好是申請的證書
$context = array(
// 更多ssl選項(xiàng)請參考手冊 http://php.net/manual/zh/context.ssl.php
'ssl' => array(
// 請使用絕對路徑
'local_cert' => '阿里云證書的絕對路徑', // 也可以是crt文件
'local_pk' => '阿里云證書的絕對路徑',
'verify_peer' => false,
// 'allow_self_signed' => true, //如果是自簽名證書需要開啟此選項(xiàng)
)
);
// websocket協(xié)議(端口任意,只要沒有被其它程序占用就行)
$gateway2 = new Gateway("websocket://0.0.0.0:端口號", $context);
這一步跟官網(wǎng)文檔沒區(qū)別
然后在確保服務(wù)正常開啟、移動端用ws能夠成功連接、端口號未被占用、防火墻添加端口號白名單 的情況下
3.在前端代碼中進(jìn)行連接
ws = new Worker("wss://我的域名:端口號");
結(jié)果報錯了
WebSocket connection to 'wss://我的域名:端口號/' failed:
failed后面還是空的,我也不知道啥意思,直接默認(rèn)為是根本就沒對上地址,可能是我寫錯了
經(jīng)過搜索之后我用
ws = new Worker("wss://我的域名/websocket/");
試了一下也不行,用
ws = new Worker("wss://我的公網(wǎng)IP:端口號");
就更不用說了,反正無論如何都連接不上
各位大佬,請問我是哪里寫錯了