我正在为 HTML5 画布上的协作绘图创建一个 Node.js 应用程序。我正在使用 Socket.IO 进行通信,并且我已经实现了集群,因此我能够扩展我的应用程序。我的讲师告诉我,使用集群是一个好主意,但让 cpu 中的每个核心都做同样的事情并不明智,即违背了目的。因此,在我的情况下,让 8 个核心在完全相同的绘画上工作并不明智,而是可能有 8 种不同的绘画,每个核心一张绘画。我也知道 Socket.IO 只通过一个核心进行通信。现在我对从哪里开始以及如何开始有点困惑。我知道有这个“粘性”socket.io 模块,但这只会共享通信,但不会为每个核心制作不同的绘画?
这是我制作的服务器:
let http = require('http').Server(application);
let socketIO = require('socket.io')(http);
let cluster = require('cluster');
let cores= require('os').cpus().length;
if (cluster.isMaster) {
for (let i = 0; i < cores; i++) {
cluster.fork();
}
} else {
process.exit();
}
function connect(socket){
socket.on('test',
function emit(data) {
socket.broadcast.emit('test', data);
});
}
socketIO.on('connection', connect);
http.listen(port);