Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法连接到websocket_Javascript_Jquery_Ssl_Websocket_Stunnel - Fatal编程技术网

Javascript 无法连接到websocket

Javascript 无法连接到websocket,javascript,jquery,ssl,websocket,stunnel,Javascript,Jquery,Ssl,Websocket,Stunnel,我使用创建了一个PHP websocket。此Websocket正在我的内部服务器10.0.4.160的端口8080上运行 我正在尝试从一个启用SSL的网站连接到它“aka using https protocol” 当我试图从FireFox浏览器连接到websocket时,浏览器会出现安全问题,因为我混合了安全/非安全连接。这就是我在javascript控制台中看到的错误 SecurityError:操作不安全 为了解决安全问题,我创建了一个代理,允许我在10.0.4.160:58443上接受

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

我正在尝试从一个启用SSL的网站连接到它“aka using https protocol”

当我试图从FireFox浏览器连接到websocket时,浏览器会出现安全问题,因为我混合了安全/非安全连接。这就是我在javascript控制台中看到的错误

SecurityError:操作不安全

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

但是,每次尝试连接到websocket时,都会出现一个错误

WebSocket连接到'wss://10.0.4.160:58443/'失败:中出现错误 连接建立:网络::错误\u超时

这是用于连接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>
如何从浏览器连接到websocket?
谢谢

阅读更多有关html5 WebSocket的信息,请访问

Socket.io是一个流行的web套接字库,请访问www.Socket.io了解更多信息

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

  • 您的服务器是否识别连接尝试
  • 你的服务器 处理客户机-服务器握手
如果您的服务器识别到连接尝试,那么您的问题很可能是握手。您的JavaScript没有问题


额外信息:

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

|服务器(PHP)|服务器(websocket)|
您正在使用的:(我们将此类型称为2)

|浏览器(客户端)|服务器(websocket)|
当将类型1连接用作类型2连接时,可能会导致主web服务器溢出,从而导致严重的性能问题。网络主持人:Godaddy,Hostgator。。发射型计算机断层扫描仪。。将终止因被视为DDOS攻击而淹没其服务器的连接


我不知道ratchet是什么,但要保持服务器和客户端连接的开放,PHP需要保持开放&这从来都不是一个好主意。查看创建一个服务器,如C语言或C++。< /P>向下投票,直到我们看到你的PHP服务器与棘轮一起设置。
[websockets]
client = yes
accept = 58443
connect = 8080
verify = 2
CAfile = ca-certs.pem
debug = 7
OCSPaia = yes
|SERVER(PHP)| <--- CONNECTION --> |SERVER(websocket)|
|BROWSER(client)| <----CONNECTION --> |SERVER(websocket)|