在我的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()
});
});
};
有什么想法吗?
答案 0 :(得分:1)
在最后的server.js
文件中,它应该是:
io.sockets.on('connection', function (sock) {
socket(sock, io);
});