为了账号安全,请及时绑定邮箱和手机立即绑定

WebSocket 打开握手超时 php Ratxet websocket

WebSocket 打开握手超时 php Ratxet websocket

PHP
阿晨1998 2021-11-26 15:05:20
我正在创建我的第一个 websocket,它在本地使用 ws,现在我将它上传到服务器并上传所有文件并从 ssh 执行 websocket。我收到此错误:WebSocket 打开握手超时我尝试将此行添加到 httpd.confProxyPass /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 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

如果您使用的是 Apache Web 服务器(2.4 或更高版本),请在 httpd.conf 文件中启用这些模块

  1. mod_proxy.so

  2. mod_proxy_wstunnel.so

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

  • 须藤 a2enmod proxy_wstunnel

  • 须藤 a2enmod 代理

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

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

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

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

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


查看完整回答
反对 回复 2021-11-26
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

我解决了这个,

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

将 url 连接更改为:

wss://xxxxxxxxx/wss2/:8080

(因为 ProxyPass)

它有效。


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 564 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信