我希望能够在同一个Node.js应用程序中以编程方式构建,管理和关闭多个Socket.io服务器。我知道我可以将多个服务器硬编码到代码中,如client getting connections to multiple socket.io node.js servers所示,但我希望能够动态添加和删除它们。
我尝试将它们添加到数组中,但服务器似乎无法运行,并且没有任何内容添加到数组中。
//main.js
const serverManager = require('./servers.js');
var activeServers = [];
var createServer = function(port) {
var newServer = serverManager.build(port);
activeServers.push(newServer);
console.log(activeServers[0]) // Returns undefined
};
//servers.js
var socketio = require('socket.io');
exports.build = function(port) {
var io = socketio.listen(port);
return io;
// io.on('connection', function(socket) {
// console.log(socket.id + ' connected!')
// socket.on('foo', function(msg1) {
// socket.emit('bar','world');
// });
// });
}
当我使用createServer(portNumber)
(来自main.js)创建服务器时,服务器运行正常并且新连接被推送到控制台,但它似乎没有添加到数组中。我也不确定如何在添加服务器后删除它们。我可以在不同的端口上添加多个服务器,并且可以连接到所有服务器,但我不确定如何管理它们或者在它们被创建之后保存到的位置。