Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从服务器文件中分离socket.io逻辑并访问逻辑文件中的io.sockets_Javascript_Node.js_Socket.io - Fatal编程技术网

Javascript 从服务器文件中分离socket.io逻辑并访问逻辑文件中的io.sockets

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); }

在我的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()
        });
    });
}; 

有什么想法吗

在最后的
server.js
文件中,它应该是:

io.sockets.on('connection', function (sock) {
    socket(sock, io);
});