【发布时间】:2015-02-25 09:14:17
【问题描述】:
我在客户端上有一个带有 expressjs 和 btford.socket-io 的 npm socket.io 的 MEAN 应用程序设置。
angular.module('myApp',['btford.socket-io'])
.factory('socket',function(socketFactory){
return socketFactory();
}
).controller('myAppCtrl',['$scope','socket',
function(a,b){
b.on('test',function(data){
console.log(data);
});
}
]);
这是 node-express 设置:
var app = express(),
server = app.listen(3000);
var socket = require('socket.io'),
io = socket.listen(server);
require('/config/routes/index.js')(app,io);
require('/config/routes/test.js')(app,io);
路由:(config/routes/index.js)
module.exports = function(app,io){
app.get('/',function(req,res){
io.on('connection',function(socket){
socket.join(req.session._id);
});
res.render('index');
});
};
config/routes/test.js
module.exports = function(app,io){
app.get('/route1',function(req,res){
io.to(req.session._id).emit('test',{
data : 'Works'
});
res.render('route1');
});
};
A) 每当用户转到 route1 时,就会触发 emit 事件并将其发送给所有用户。
B) 有没有更好的方法来避免为每个用户使用不同的房间?这不是聊天应用程序,而是实现推送通知
【问题讨论】:
标签: javascript angularjs node.js sockets socket.io