【发布时间】:2015-07-25 09:36:42
【问题描述】:
在我的 Nodejs 应用程序的server.js(起点)中,我执行以下操作来启动服务器和套接字:
var socket = require('./routes/socket');
var port = process.env.PORT || 9091;
var io = require('socket.io').listen(app.listen(port, function(){
console.log('Server is listening on port: ' + port);
}));
io.sockets.on('connection', socket);
现在在./routes/socket 我希望能够向所有客户广播,我相信我必须这样做:io.sockets.emit() 与相同的io
问题是我无权访问该文件中的io:
// export function for listening to the socket
var store = (function(){
var value = 0;
var getValue = function() {
return value;
};
var addValue = function(toAdd) {
value += toAdd.messages;
return value;
};
return {
getValue: getValue,
addValue: addValue
};
}());
module.exports = function (socket, io) {
socket.emit('value', {
value: store.getValue()
});
// broadcast a user's message to other users
socket.on('getValue', function (data) {
socket.emit('value', {
value: store.getValue()
});
});
socket.on('addValue', function (data) {
store.addValue(data);
io.sockets.emit('value', {
value: store.getValue()
});
});
};
有什么想法吗?
【问题讨论】:
标签: javascript node.js socket.io