WebSocket打开握手超时php Ratxet websocket

时间:2019-08-15 17:31:28

标签: php websocket phpwebsocket

我正在创建我的第一个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

2 个答案:

答案 0 :(得分:0)

我解决了这个问题,

首先我将端口更改为8080,(我认为这不是必需的。)

将url连接更改为:

wss://xxxxxxxxx/wss2/:8080

(“导致ProxyPass)

它有效。

答案 1 :(得分:0)

如果您使用的是Apache Web服务器(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");

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