【问题标题】:WebSocket opening handshake timed out php Ratxet websocketWebSocket打开握手超时php Ratxet websocket
【发布时间】:2019-12-22 03:15:33
【问题描述】:

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

【问题讨论】:

标签: php websocket phpwebsocket


【解决方案1】:

如果您使用的是 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 连接时,在 Javascript 调用中使用此 URL:

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

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

【讨论】:

    【解决方案2】:

    我解决了,

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

    将url连接改为:

    wss://xxxxxxxxx/wss2/:8080
    

    ('导致 ProxyPass)

    它有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2019-11-04
      • 2019-06-11
      • 1970-01-01
      • 2017-03-19
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多