windows下node主进程和子进程的消息竞争问题

新手上路,请多包涵

按照《深入浅出Node.js》中进程监听相同端口的实现敲了下代码

//parent.js
var cp = require('child_process'); 
var child2 = cp.fork('child.js');
var child1 = cp.fork('child.js'); 
// var child2 = cp.fork('child2.js');

var server = require('net').createServer(); 
server.on('connection', function (socket) {
    socket.end('handled by parent\n'); 
});
server.listen(1337, function () {
    // child1.send('server', server); 
    child2.send('server', server);
    child1.send('server', server); 
});
//child.js
process.on('message', function (m, server) { 
    if (m === 'server') {
        server.on('connection', function (socket) {
            socket.end('handled by child, pid is ' + process.pid + '\n');
        }); 
    }
});

以上代码在运行时,使用curl 127.0.0.1:1337命令时,mac下主进程和子进程是竞争关系,随机抢占句柄,但是在windows下不管我怎么测试,永远是后定义的子进程抢占到句柄,请问下这是什么问题,windows下使用git bash。

阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题