国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

NodeJs多進(jìn)程和socket.io通訊-DEMO

Original 2016-11-18 12:45:39 848
abstract:一、開啟多進(jìn)程const os = require('os'); const cp = require('child_process'); const forkList = {}; const forkPrefix = 'fork_

一、開啟多進(jìn)程

const os = require('os');
const cp = require('child_process');

const forkList = {};
const forkPrefix = 'fork_';
let cpusLen = os.cpus().length;
let port = 9562;
for (var i = 1; i <= cpusLen; i++) {
    forkList[forkPrefix + i] = cp.fork(`${__dirname}/a.js`, [port]);
    var childPid = forkList[forkPrefix + i].pid;
    console.log("子進(jìn)程Fork成功.Pid:" + childPid);
    port++;
}

// 監(jiān)聽子進(jìn)程分發(fā)消息
var pid = process.pid;
for (var key in forkList) {
    var forkObj = forkList[key];
    var childPid = forkObj.pid;
    forkObj.on('message', (m) => {
        console.log('主進(jìn)程ID:' + pid + ',子進(jìn)程ID:' + childPid + ',message:', m);
        send(m);
    });
}

// 輪詢所有子進(jìn)程消息發(fā)送
function send(m) {
    for (var key in forkList) {
        forkList[key].send(m);
    }
}

 

二、啟動(dòng)websocket服務(wù)-------(a.js)

var pid = process.pid;
console.log('starting socket.io server......', pid);

var argvs = process.argv.slice(2);
if (argvs.length <= 0) {
    console.log("fork child params bad...");
    return false;
}

var port = argvs[0];
var server = require('http').createServer();
var io = require('socket.io')(server);
io.on('connection', function (socket) {
    socket.on('router', function (data) {
        console.log(data);

        // 把消息發(fā)送給主進(jìn)程,由主進(jìn)程分發(fā)給所有子進(jìn)程
        process.send(data);
    });

    socket.on('disconnect', function () {

    });
});
server.listen(port);

// 監(jiān)聽由主進(jìn)程分發(fā)消息
process.on('message', (m) => {
    console.log('pid:' + pid + ',message:', m);
    io.sockets.emit('router', m);
});

 

三、DEMO演示截圖

1、服務(wù)端啟動(dòng)程序

wKiom1gtudmz3u2sAAEuTTwV-g4258.png-wh_651x-s_2584281609.png

 2、客戶端1

wKiom1gtudmz3u2sAAEuTTwV-g4258.png-wh_651x-s_2584281609.png

 3、客戶端2

wKiom1gtudmz3u2sAAEuTTwV-g4258.png-wh_651x-s_2584281609.png

4、客戶端3

wKiom1gtudmz3u2sAAEuTTwV-g4258.png-wh_651x-s_2584281609.png

5、客戶端4

wKiom1gtudmz3u2sAAEuTTwV-g4258.png-wh_651x-s_2584281609.png

Release Notes

Popular Entries