1

HTML5 キャンバスでの共同描画用の Node.js アプリケーションを作成しています。通信に Socket.IO を使用しており、クラスタリングを実装しているため、アプリケーションをスケーリングできます。私の講師は、クラスタリングを使用するのは良いアイデアだと言いましたが、CPU のすべてのコアに同じことをさせるのは賢明ではありません。つまり、目的に反します。したがって、私の場合、まったく同じペインティングで 8 つのコアを使用するのは賢明ではありませんが、代わりに 8 つの異なるペインティング (コアごとに 1 つのペインティング) を使用することもできます。また、Socket.IO は 1 つのコアを介してのみ通信することも知っています。今、私はどこから、どのように始めるべきかについて少し混乱しています。この「粘着性のある」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);
4

1 に答える 1