gpt4 book ai didi

javascript - 无法连接到 websocket

转载 作者:数据小太阳 更新时间:2023-10-29 04:50:58 31 4
gpt4 key购买 nike

我使用 Ratchet 创建了一个 PHP websocket .此 Websocket 在我的内部服务器 10.0.4.160 的端口 8080 上运行。

我正在尝试从一个启用了 SSL 的网站“也就是使用 https 协议(protocol)”连接到它。

当尝试从 FireFox 浏览器连接到 websocket 时,我从浏览器收到安全问题,因为我在安全/非安全连接之间混合。这是我在 javascript 控制台中看到的错误。

SecurityError: The operation is insecure.

为了解决安全问题,我创建了一个 stunnel代理,它允许我接受 10.0.4.160:58443 上的连接并将其连接到端口 127.0.0.1:8080。这个安全隧道应该允许我保持与 websocket 的连接安全并绕过浏览器的安全检查。

但是,每次我尝试连接到 websocket 时都会出错

WebSocket connection to 'wss://10.0.4.160:58443/' failed: Error in connection establishment: 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?谢谢

最佳答案

http://www.html5rocks.com/en/tutorials/websockets/basics/ 阅读更多关于 html5 websockets 的信息

Socket.io 是一个流行的网络套接字库,阅读更多信息请访问 www.socket.io

没有足够的信息来诊断您的问题。请提供服务器日志。

  • 您的服务器是否识别连接尝试?
  • 你的服务员处理客户端服务器握手?

如果您的服务器识别出连接尝试,那么您的问题很可能是握手。您的 JavaScript 没有问题。


额外信息:

另一种类型的连接:(我们称这种类型为 1)

|SERVER(PHP)| <--- CONNECTION --> |SERVER(websocket)|

您使用的是什么:(我们称之为类型 2)

|BROWSER(client)| <----CONNECTION --> |SERVER(websocket)|

当使用类型 1 连接作为类型 2 连接时,您可能会溢出主 Web 服务器,这将导致严重的性能问题。像 Godaddy、Hostgator 等 Web 主机将终止正在淹没其服务器的连接,因为它们被视为 DDOS 攻击。

我不知道棘轮是什么,但要保持服务器和客户端连接打开,PHP 需要保持打开状态,这绝对不是一个好主意。考虑使用 C# 或 C++ 等语言创建服务器。

关于javascript - 无法连接到 websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32057238/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com