Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将Socket.io集成到Angular.js样板文件中_Javascript_Angularjs_Node.js_Coffeescript_Socket.io - Fatal编程技术网

Javascript 将Socket.io集成到Angular.js样板文件中

Javascript 将Socket.io集成到Angular.js样板文件中,javascript,angularjs,node.js,coffeescript,socket.io,Javascript,Angularjs,Node.js,Coffeescript,Socket.io,所以,我完全迷路了 我有一个普通的项目,我用它来构建 从本质上讲,它构建了一个基本的项目,它预先打包了Grunt、CoffeeScript、Angular和Bootstrap。我唯一缺少的就是添加Socket.io。现在,我痛苦地迷失了方向。据我所知,我应该使用npm安装socket,将其导入我的脚本列表中,然后进行一些大致如下的初始设置: var express = require('express'); var app = express(); var server = require('h

所以,我完全迷路了

我有一个普通的项目,我用它来构建

从本质上讲,它构建了一个基本的项目,它预先打包了Grunt、CoffeeScript、Angular和Bootstrap。我唯一缺少的就是添加Socket.io。现在,我痛苦地迷失了方向。据我所知,我应该使用npm安装socket,将其导入我的脚本列表中,然后进行一些大致如下的初始设置:

var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
var port = process.env.PORT || 3000;

server.listen(port, function () {
  console.log('Server listening at port %d', port);
}); 
然后参考
io
变量了解所有sockety参数

现在,由于各种原因,这对我来说暂时不起作用。首先,我没有一个app.js文件来添加所有初始socket.io设置。我的项目看起来更像:

├── app
│   ├── index.html
│   ├── scripts
│   │   ├── app.coffee
│   │   └── controllers
│   │       ├── about.coffee
│   │       └── main.coffee
│   ├── styles
│   │   └── main.scss
│   └── views
│       ├── about.html
│       └── main.html
├── bower.json
├── Gruntfile.js
├── package.json
├── README.md
├── server.js
其中app.cofe是带有应用程序设置的ng应用程序文件

现在,我可以在Gruntfile的顶部添加设置,不确定这是否是我应该做的,但这确实提供了我应该导入到index.html中的
socket.js.io
文件。然而,我对此有一些问题

因此,第一个问题是,将设置放在我的GrunFile中不会使
io
变量在我的app.coffee中可用。我相信这就是我想要调用各种套接字方法的原因,比如
io.connect()

第二,这部分让我觉得很奇怪

var port = process.env.PORT || 3000;
server.listen(port, function () {
    console.log('Server listening at port %d', port);
}); 
这是在端口3000上提供
/socket.io/socket.io.js
文件,而我的应用程序在端口9000上运行。然而,我不能仅仅指向端口9000而不遇到端口被使用的问题。我之所以认为这是一个问题,是因为这迫使我将其与类似
的内容链接,如果我将页面提供给另一个主机,这将不起作用。如果所有的javascript都在同一个地方提供,那么就容易多了。我可以链接到node_modules/socket.io/lib/socket.io.js,但这似乎是一个不完整的答案。还有更多的。。。。正确的做法

最后,有一件事我没有找到好的信息。理想情况下,我需要一个server.coffee文件,在其中我可以存储只能通过套接字调用访问的敏感信息。我不知道怎么做。就像grunt应该知道那个文件,然后我的io.emit调用就可以到达它