【问题标题】:Websocket : Error during WebSocket handshake: Unexpected response code: 504Websocket:WebSocket 握手期间出错:意外的响应代码:504
【发布时间】:2019-10-15 11:22:31
【问题描述】:

我一直在开发一个使用 websocket 连接的实时聊天。它在我的本地主机和 http 服务器上运行良好。但是,我正试图让它在具有 Deluxe Linux Hosting 的安全 GoDaddy 服务器上运行。 当客户端试图从 javascript 打开一个 websocket 连接时,它最终会响应“WebSocket connection to 'wss://jhaubrich.com/new.projecthandle.io/Demo/include/projectChat/php-socket.php?username=贾斯汀失败:WebSocket 握手期间出错:意外响应代码:504"

504 网关超时错误表示网关或代理服务器存在问题。

如果我尝试再次打开连接而不杀死 lsphp 的 PID,则 php-socket.php 文件写入 error_log 的错误显示为“PHP 警告:socket_bind():无法绑定地址 [98]:地址已在第 12 行的 /home/fq2cvob2t06k/public_html/new.projecthandle.io/Demo/include/projectChat/php-socket.php 中使用"

对于 php-socket.php 中的 socket_bind(),我使用的是 8090 端口。

我尝试过更改端口。我尝试在 websocket js 的 url 末尾添加“websocket”。

//我的js发起websocket var websocket = new WebSocket("ws://jhaubrich.com/new.projecthandle.io/Demo/include/projectChat/php-socket.php?username=" + userName + "" );

我希望建立一个 websocket 连接。 相反,我收到此错误:“与 'wss://jhaubrich.com/new.projecthandle.io/Demo/include/projectChat/php-socket.php?username=Justin' 的 WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:504"

【问题讨论】:

  • 您的连接正在自动升级以使用安全套接字 - 这就是启动 URL 为 ws://j... 并且从 wss://j 引发错误的原因。您需要实现安全套接字。
  • 好的,我把代码改成了 'var websocket = new WebSocket("wss://jhaubrich.com:8090/new.projecthandle.io/Demo/include/projectChat/php-socket.php ?usern ame=" + userName + "" );'
  • 现在的问题是我的浏览器由于某种原因仍在缓存旧的 ProjectManagement.js 代码......即使我在开发工具打开时禁用了缓存......
  • 在 Microsoft Edge 中尝试时,我得到“SCRIPT12029:SCRIPT12029:WebSocket 错误:网络错误 12029,无法建立与服务器的连接”

标签: javascript php websocket server http-status-code-504


【解决方案1】:

我意识到我正在使用共享托管环境。我需要购买一个虚拟专用服务器,我将拥有 root 权限。然后我就可以使用WebSockets了……

【讨论】:

  • 也许这不是问题所在。看,我正在使用 VPS,我面临着和你一样的问题。看看那个:stackoverflow.com/questions/63473220/…,也许我们可以互相帮助。
  • 是的,Rogerio Brito Soares,看起来我们正在做同样的事情,面临同样的问题。如果您找到解决方案,请告诉我,同样,如果我找到解决方案,我会通知您:)
  • 我相信你也应该去我的仓库测试一下。也许我们可以一起找到一些东西……
  • 我的工作开始了!我正在使用 nginx 代理连接。我在我的 nginx 虚拟主机配置中缺少 ssl 指令,但是一旦我添加了这些指令,我的安全 websocket 就可以工作了。
  • 太棒了!那太棒了!你能告诉我你是怎么做到的吗?请在这里stackoverflow.com/questions/63473220/… 看看我的问题。我认为它必须与proxy_ssl_certificate有关。是这样吗?你是怎么做的?
猜你喜欢
  • 2020-11-24
  • 2015-03-21
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-21
  • 2019-01-19
  • 2016-02-02
相关资源
最近更新 更多