1

我有一个用 Yeoman 创建的 Angular 应用程序,它在开发人员中运行良好,在端口 9000 上。

我有一个在 3000 端口上运行的服务器端 node.js 应用程序。

我已经在 NodeJS 应用程序上安装了 socket.io。

我的 Angular 应用程序中的大部分 JS 都在app目录中,但 socket.io.js 是通过节点提供的:

<script src="components/angular/angular.js"></script>
<script src="components/angular-resource/angular-resource.js"></script>
<script src="components/angular-cookies/angular-cookies.js"></script>
<script src="components/angular-sanitize/angular-sanitize.js"></script>
<script src="http://localhost:3000/socket.io/socket.io.js"></script>

这对我来说有点不对劲。此外,当我加载 socket.io 并connect()在客户端调用时,它试图连接到 localhost:9000,而不是 localhost:3000

有没有办法调和这两个世界?我是否需要从 node.js 中提供我的 Angular 应用程序?我不愿意失去实时重新加载。

4

1 回答 1

2

你可以拥有一切!

在您的连接调用中,确保您连接到 websocket 服务器,即

var socket = io.connect('http://localhost:3000');

从套接字服务器加载脚本很好。这并没有错。

于 2013-05-08T00:21:25.777 回答