Node.js 如何将socket.io模块化为多页

Node.js 如何将socket.io模块化为多页,node.js,express,socket.io,Node.js,Express,Socket.io,我正在尝试使用socket.io和express。 是否可以在express应用程序中初始化routes/index.js内部的套接字 我试着要求app.js,然后听了听,但没用 var app = require('../app.js'); var io = require('socket.io')(app); 如果无法执行上述操作,如何在app.js中初始化io变量,然后在index.js中使用它 我想了解的是如何将socket.io模块化 假设我有一个网站,其中两个页面使用套接字。我不想

我正在尝试使用socket.io和express。 是否可以在express应用程序中初始化routes/index.js内部的套接字

我试着要求app.js,然后听了听,但没用

var app = require('../app.js');
var io = require('socket.io')(app);
如果无法执行上述操作,如何在app.js中初始化io变量,然后在index.js中使用它

我想了解的是如何将socket.io模块化


假设我有一个网站,其中两个页面使用套接字。我不想将它们的所有代码都放在app.js中。

您需要在侦听io时传递server对象。试试这个

    var app = require('../app.js');
    app.set('port', process.env.PORT || 3000);

    var server = app.listen(app.get('port'), function() {
      console.log('Express server listening on port ' + server.address().port);
    });

    var io = require("socket.io").listen(server);

    io.on("connection",function(socket){
        console.log("Application connected");
        socket.on('disconnect',function(){
            console.log("Application Disconnected");
        });

        socket.on('some-event',function(meetup){
            //do something
            io.emit('some-new-event-to-notify-client',passSomeData);
        });
    });

我找到了解决办法。这不完全是我想要的,但它会的

如上面链接所述

//app.js
var sockets = require('./sockets');
sockets.socketServer(app, server);


// sockets.js
var socketio = require('socket.io');
exports.socketServer = function (app, server) {
  var io = socketio.listen(server);

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

目前,所有发射现在都发送到socket.js。但我想把它分成多个文件。

我在尝试使用应用程序时出错。上面写着app.set('port',process.env.port | | 3000)^TypeError:undefined不是一个函数(^指向set)请粘贴你的app.js,让我看看里面有什么。