【发布时间】:2016-05-03 19:59:10
【问题描述】:
(不熟悉节点。)
我使用express-generator 生成了我的express js 应用程序
所以文件结构是这样的
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.jade
├── index.jade
└── layout.jade
我想实现socket io。等等文件bin/www
我在server.listen(port);下面添加了这段代码
server.listen(port);
/**
* Socket IO
*/
var io = require('socket.io')(server);
io.on('connection', function(socket){
console.log('a user connected');
console.log(socket.id);
socket.on('disconnect', function(){
console.log('user disconnected');
console.log(socket.id);
});
});
每次客户端连接时,它都会记录
连接的用户
现在我想使用他们的 socket.id 向特定用户发布更新
关于路线/index.js
var express = require('express');
var router = express.Router();
var io = require('socket.io');
/* GET home page. */
router.route('/')
.get(function(req, res, next)
{
res.send('Nothing to do here');
})
.post(function(req, res, next)
{
var socketid = req.param('socketid');
io.broadcast.to(id).emit('message', "Hello World");
}
);
module.exports = router;
现在每次我发帖。我收到一个错误
Cannot read property 'to' of undefined
好像我的 io 搞错了。
我是否还需要 index.js 中的服务器?
或者我如何使用在 www 中声明的一个 io var?这可能吗?只需使用现有对象即可
【问题讨论】: