猿问

WebSocket 打开握手超时 php Ratxet websocket

我正在创建我的第一个 websocket,它在本地使用 ws,现在我将它上传到服务器并上传所有文件并从 ssh 执行 websocket。


我收到此错误:WebSocket 打开握手超时


我尝试将此行添加到 httpd.conf


ProxyPass /wss2/ ws://xxxxxxx:12345/


但仍然不起作用。


var conn = new WebSocket('wss://xxxxxxxxx:12345');


        conn.onopen = function(e) {

            console.log("Connection established!");

            conn.send(

                JSON.stringify({

                    'type':'socket',

                    'id':'<?php echo $this->session->id; ?>'

                })

            );

        };

这是我得到的控制台错误:


dashboard:430 WebSocket connection to 'wss://xxxxxxxxxx:12345/' failed: WebSocket opening handshake timed out


阿晨1998
浏览 565回答 2
2回答

慕的地10843

如果您使用的是 Apache Web 服务器(2.4 或更高版本),请在 httpd.conf 文件中启用这些模块mod_proxy.somod_proxy_wstunnel.so如果您不知道如何启用,请使用以下命令须藤 a2enmod proxy_wstunnel须藤 a2enmod 代理然后将此设置添加到您的 httpd.conf 文件中ProxyPass&nbsp;/wss2/&nbsp;ws://ratchet.mydomain.org:8888/当您需要 WSS 连接时,请在您的 JavaScript 调用中使用此 URL:var&nbsp;ws&nbsp;=&nbsp;new&nbsp;WebSocket("wss://ratchet.mydomain.org/wss2/NNN");在应用设置(telnet 主机名端口)之前,重新启动 Apache Web 服务器并确保您的 Ratchet 工作线程(Web 套接字连接)已打开。

叮当猫咪

我解决了这个,首先,我将端口更改为 8080,(我认为没有必要。)将 url 连接更改为:wss://xxxxxxxxx/wss2/:8080(因为 ProxyPass)它有效。
随时随地看视频慕课网APP
我要回答