我下载了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
答案 0 :(得分:2)
客户端代码上的socket.io.js由节点动态提供(它不是资源)。但是,此Web服务器会重写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>
希望这能节省一些时间。