我使用Ratchet创建了一个 PHP websocket 。8080
这个 Websocket 正在我的内部服务器的端口上运行10.0.4.160
。
我正在尝试从启用了 SSL“又名使用 https 协议”的网站连接到它。
当尝试从 FireFox 浏览器连接到 websocket 时,我从浏览器收到安全问题,因为我在安全/非安全连接之间混合。这是我在 javascript 控制台中看到的错误。
SecurityError:操作不安全。
为了解决安全问题,我创建了一个stunnel代理,它允许我接受连接 10.0.4.160:58443
并将其连接到 port 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?谢谢