我使用Ratchet创建了一个PHP WebSocket。该WebSocket运行在我的内部服务器
我正在尝试从启用SSL的网站(即使用https协议)连接到它。
当我尝试从FireFox浏览器连接到WebSocket时,由于我混合使用安全/非安全连接,所以我会收到来自浏览器的安全问题。这是我在JavaScript控制台中看到的错误:
然而,每次我尝试连接WebSocket时,都会出现错误。
10.0.4.160
的端口8080
上。我正在尝试从启用SSL的网站(即使用https协议)连接到它。
当我尝试从FireFox浏览器连接到WebSocket时,由于我混合使用安全/非安全连接,所以我会收到来自浏览器的安全问题。这是我在JavaScript控制台中看到的错误:
为了解决安全问题,我创建了一个stunnel代理,允许我接受SecurityError:操作不安全。
10.0.4.160:58443
上的连接,并将其连接到127.0.0.1:8080
端口。这个安全隧道应该允许我保持与WebSocket的连接安全,并绕过浏览器的安全检查。然而,每次我尝试连接WebSocket时,都会出现错误。
WebSocket连接到 'wss://10.0.4.160:58443/' 失败:连接建立时出错:net::ERR_TIMED_OUT
这是用于连接websocket的jQuery脚本。
<script>
$(function(){
if ("WebSocket" in window)
{
var conn = new WebSocket('wss://10.0.4.160:58443');
conn.onopen = function(e) {
console.log("Connection established!");
showMessage('Connected', 0);
};
conn.onmessage = function(e) {
console.log(e.data);
showMessage(e.data, 1);
};
conn.onclose = function(e) {
console.log(e.code);
console.log(e.reason);
};
conn.onerror = function(e) {
console.log(e);
};
} else {
console.log('Your browser does not support Websocket!');
}
function showMessage(msg, append){
if(append){
$('#status').append('<br>' + msg);
return;
}
$('#status').text(msg);
}
});
</script>
这是我的当前 stunnel 配置
[websockets]
client = yes
accept = 58443
connect = 8080
verify = 2
CAfile = ca-certs.pem
debug = 7
OCSPaia = yes
我该如何在浏览器中连接到websocket?谢谢。