【发布时间】: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