node.js - websockets 的相对路径

标签 node.js websocket relative-path relative-url

我已经在windows server 2012 r2上成功安装了Apache2.2.22和nodejs 0.10.12。

我使用 nssm 成功地将 Node 变成了一个 Windows 服务,所以它会一直运行。

Node “生活”在 8000 端口,我在 apache 的 httpd.conf 中安装了一个代理

ProxyPass /nodejs http://localhost:8000
ProxyPassReverse /nodejs http://localhost:8000

当我在服务器的浏览器中检查我的站点时,websockets 工作正常。

当我在笔记本电脑浏览器中检查我的网站时,出现错误。

我猜这是因为我是这样创建 websockets 的原因

 var ci = new WebSocket("ws://localhost:8000");

这就是为什么在服务器上工作,而不是在我的笔记本电脑上工作的原因。因为 localhost。首先,我说得对吗?

其次。唯一的问题是,我不知道如何为 websockets 创建相对路径。我尝试了不同的语法,但没有成功。拜托,有人可以告诉我怎么做,并向我解释吗?

提前致谢。

编辑: 我没有设置 Windows Server 2012 r2。一个同事做的。我刚刚上传了网站。我在 Windows 防火墙中设置了入站规则,因此端口 8000 是打开的。另外,一个用于端口 80(用于 Apache)。我尝试了像 robertklep 建议的东西,但没有运气。也许是操作系统的问题? (安全限制?)

里面httpd.conf我也有

 ProxyPass /geoserver http://localhost:8080/geoserver
 ProxyPassReverse /geoserver http://localhost:8080/geoserver

它在 Node 的代理之前。它是关于 Geoserver 和端口 8080,它也有一个入站规则。工作正常。

Node 只能在本地工作(在 URL 中有 localhost)。在本地,如果我从 httpd.conf 中删除 Proxy 行,仍然有效。

我不知道如何安装/配置 proxy_wstunnel_module。而且我不确定我是否需要它。

我已经尽力了,请多多指教

谢谢

最佳答案

首先:是的,你是对的。

第二:我认为 WebSocket URL 始终必须是绝对的。要动态确定该 URL,您可以使用如下内容:

var ci = new WebSocket('ws://' + location.hostname + ':8000');

我假设您没有使用端口 8000 上的 Node 服务器来同时提供 HTML 文件。如果你是,这也可能有效(并且更短):

var ci = new WebSocket('ws://' + location.host);

关于node.js - websockets 的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064419/

相关文章:

node.js - NodeJS : Adding channels to a Socket. IO服务器无需重启

ios - Info.plist 实用程序错误 : "Info.plist couldn' t be opened because there is no such file"

node.js - 一个 node.js 进程可以处理多少个事件流

node.js - ionic运行失败,但出现异常> org/bouncycaSTLe/jce/provider/BouncyCaSTLeProvider

Python websockets : how to override sync method WebSocketCommonProtocol. connection_made() 与异步调用?

php - 网络语言, "directory/file.extension"与 "/directory/file.extension"

c# - 如何从相对路径加载c#中的json文件?

javascript - YQL-描述 : undefined

javascript - TypeError : Cannot read property 'toString' of undefined at Geolib. isDecimal

javascript - WebSocket 最佳实践