Javascript 从服务器文件中分离socket.io逻辑并访问逻辑文件中的io.sockets
在我的Nodejs应用程序的Javascript 从服务器文件中分离socket.io逻辑并访问逻辑文件中的io.sockets,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,在我的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); }
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()
});
});
};
有什么想法吗 在最后的
server.js
文件中,它应该是:
io.sockets.on('connection', function (sock) {
socket(sock, io);
});