1

我下载了 Angular 项目angular-seed,并使用他们提供的节点 web-server.js 文件来运行我的代码。

我已经构建了足够多的功能,因此切换到另一个项目并重新执行已经在 web-server.js 中管理的 URL 处理将是非常重要的。

我想将 socket.io 添加到我的堆栈中。但是,socket.io(默认情况下)添加到客户端堆栈的方式如下所示:

<script src="/socket.io/socket.io.js"></script>

由于 web-server.js URL 重写,这不起作用。我该怎么办?

我已经安装了 node.js、npm 和 socket.io

4

1 回答 1

2

客户端代码上的 socket.io.js 由节点动态提供(它不是资源)。但是,这个网络服务器会重写 url,所以你不能正常使用它:

<script src="/socket.io/socket.io.js"></script>

但是您需要像这样提供它:

<script src="http://nodeJS_server:port/socket.io/socket.io.js"></script>

在哪里,为了测试,nodeJS_server可能是localhost

并且port是您为 socket.io 定义的,而不是节点本身。例如,在 web-server.js 顶部的依赖项中,如果添加

io = require('socket.io').listen(8080),

那是在端口 8080 上创建一个新服务器来处理您的套接字通信。因此,您可以将 index.html 中的 socket.io.js 文件定义为:

<script src="http://localhost:8080/socket.io/socket.io.js"></script>

希望这可以节省其他人一些时间。

于 2013-03-28T22:45:54.600 回答