IOS13.5 safari無(wú)法建立websocket連接
這里詳細(xì)描述問題
使用nignx反向代理配置如何
location /wss{
proxy_pass http://192.168.2.5:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
}
workerman運(yùn)行
----------------------- WORKERMAN -----------------------------
Workerman version:3.5.31 PHP version:7.3.4
------------------------ WORKERS -------------------------------
worker listen processes status
myproject websocket://192.168.2.5:8000 1 [ok]
safari可以訪問 https://192.168.2.5/wss
android和PC上沒有問題,不使用反向代理safari可以連接
var socket=new WebSocket("wss://192.168.2.5/wss");
socket.onopen=function(){
console.log('opened');
};
socket.onmessage=function(event) {
};
socket.onclose=function (e) {
};
socket.onerror=function (e) {
document.write(JSON.stringify(e));
};
window10 phpstudy
thinkphp5.1
Workerman version:3.5.31 PHP version:7.3.4
文檔說(shuō)發(fā)起wss連接時(shí)不能用ip,得用ssl證書對(duì)應(yīng)的域名去連。
var socket=new WebSocket("wss://192.168.2.5/wss");
改成
var socket=new WebSocket("wss://域名.com/wss");
試下。
域名必須是證書對(duì)應(yīng)的域名。如果是自簽名證書估計(jì)夠嗆,有些瀏覽器可能不認(rèn)。
但是手機(jī)只能通過(guò)ip訪問PC的服務(wù)器,用域名的話死活訪問不了IOS13.5 的HOSTS里面改了也不起作用,有人知道手機(jī)如何訪問嗎?
1、證書是正經(jīng)從運(yùn)營(yíng)商申請(qǐng)的正式證書,并且沒有過(guò)期
2、證書對(duì)應(yīng)的域名指向了正確的ip
3、連接時(shí)使用證書對(duì)應(yīng)的域名,不能用ip
這三點(diǎn)保證了基本就沒問題,有問題就就繼續(xù)參考這三點(diǎn)
在本地開發(fā)和調(diào)試,使用自簽是比較好的選擇,我估計(jì)是你說(shuō)的“wss連接時(shí)不能用ip” 照成的,因?yàn)槠渌鸻ndroid手機(jī)沒有問題,我在試試