使用文件描述符傳遞實現自己的cluster

parent.js

const childProcess = require('child_process');
const net = require('net');
const workers = [];
const workerNum = 10    ;
const handle = net._createServerHandle('127.0.0.1', 11111, 4);

for (let i = 0; i < workerNum; i++) {
    const worker = childProcess.fork('child.js', {env: {index: i}});
    workers.push(worker);
    worker.send(null ,handle);
}

child.js

const net = require('net');
process.on('message', (message, handle) => {
    net.createServer(() => {
        console.log(process.env.index, 'receive connection');
    }).listen({handle, port: 11111});
});

client.js

const net = require('net');
for (let i = 0; i < 50; i++) {
    net.connect({port: 11111});
}

測試:執行parent.js,然後執行client.js。

github倉庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章