我在端口 80
部署了一个 Web 服务器,Websocket 在其 javascript 中运行。
var wsURL = ws://localhost:80/ws"
wsConn = new WebSocket(wsURL);
但我不断收到此错误:
WebSocket connection to 'ws://localhost/ws' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
当我使用 80
以外的端口在本地运行此程序时没有问题,但在生产中我需要使用端口 80
并不断收到此错误。
无论如何,我可以让 WebSocket
使用端口 80
吗?
最佳答案
使用 window.location.hostname
将清除您在生产过程中遇到的任何 URL 差异。在 url 中使用 localhost
将导致向用户的本地计算机而不是生产服务器发出 ws 请求。因此您的连接被拒绝。
注意此方法仅适用于当客户端直接由同一 WebSocket 服务器提供服务时,如果服务器不同,您将需要一种方法来获取准确的信息WebSocket 服务器的 url。 --很可能是从后端(为前端提供服务)到 WebSocket 服务器的某种类型的重定向/转发/代理。
关于Javascript Websocket 监听端口 80,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35059305/