node版本v5.2.0 主进程文件如下:
var cp=require('child_process'); var temp=cp.fork('./child'); var binded=false; httpsModule.Server(options, function(req,res){ temp.send('2'); //首次访问时绑定message事件 if(!binded){ temp.on('message',function(m){ res.write('333'); res.end(); }); binded=true; } }).listen(443, function(err){});
child.js如下:
process.on('message',function (argument) { setTimeout(function(){ process.send('123'); },100); })
首次访问,页面正常输出333
然后同时出现如下情况:
然后服务器就挂了
因为默认会有一次/favicon.ico的访问,所以过程是:第一次访问,正常输出,无报错;第二次访问,输出错误,同时抛出write after end 似乎第二次访问时的res没有更新,仍然是第一次的response句柄。 这是为什么?如何解决?