Javascript Websocket在端口80上侦听

时间:2016-01-28 10:47:39

标签: javascript jquery html5 websocket

我在端口80中部署了一个Web服务器,并在其javascript中运行Websocket。

var wsURL = ws://localhost:80/ws"
wsConn = new WebSocket(wsURL);

但我一直收到这个错误:

  

与'ws:// localhost / ws'的WebSocket连接失败:连接建立错误:net :: ERR_CONNECTION_REFUSED

当我使用80以外的端口在本地运行时没有问题,但在生产中我需要使用端口80并继续收到此错误。

我是否可以WebSocket使用端口80

2 个答案:

答案 0 :(得分:1)

使用window.location.hostname将清除您在制作过程中遇到的任何网址差异。在url中使用localhost将导致向用户的本地计算机发出ws请求,而不是生产服务器。因此你的连接拒绝。

注意 此方法仅适用于客户端由同一WebSocket服务器直接提供服务的情况,如果服务器不同,则需要一种方法来获取确切的信息。 WebSocket服务器的URL。 - 很可能是从后端(服务前端)到WebSocket服务器的某种类型的重定向/转发/代理。

答案 1 :(得分:0)

WebSocket由HTTP请求初始化,ws协议默认使用端口80。

ERR_CONNECTION_REFUSED表示您没有收听此端口,您需要检查您的Web服务器配置或日志。

在Linux / OSX上,您必须使用root用户启动程序以侦听端口< 1024,您可以使用setuid()在此之后删除root权限。