WebSocket 打开握手超时 php Ratxet websocket

WebSocket opening handshake timed out 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

我解决了这个,

首先我将端口更改为 8080,(我认为没有必要。)

将 url 连接更改为:

wss://xxxxxxxxx/wss2/:8080

('因为 ProxyPass)

而且有效。

如果您使用的是 Apache 网络服务器(2.4 或更高版本),请在 httpd.conf 文件

中启用这些模块
  1. mod_proxy.so
  2. mod_proxy_wstunnel.so

如果您不知道如何启用,请使用以下命令

  • sudo a2enmod proxy_wstunnel
  • sudo a2enmod 代理

然后将此设置添加到您的 httpd.conf 文件

ProxyPass /wss2/ ws://ratchet.mydomain.org:8888/

当您需要 WSS 连接时,请在您的 JavaSscript 调用中使用此 URL:

var ws = new WebSocket("wss://ratchet.mydomain.org/wss2/NNN");

重新启动 Apache 网络服务器并确保您的 Ratchet worker(网络套接字连接)在应用设置(telnet 主机名端口)之前已打开。