亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

javascript - nodejs關于進程間發送句柄的一點疑問

瀏覽:126日期:2023-09-12 08:09:26

問題描述

先看一個一個應用程序,通過net服務觸發 http服務;

const http = require(’http’);const net = require(’net’);let netServer = net.createServer();let httpServer = http.createServer((req, res)=>{ res.end(’ok’);})netServer.listen(3000,function(){ console.log('222222'); //netServer.close();})netServer.on(’connection’,(socket)=>{ httpServer.emit(’connection’,socket);})

簡單來說就是 初始化兩個服務 一個net服務 一個http服務,用net服務監聽端口,客戶端連接后,觸發http服務的連接事件,并將socket傳給http服務;里面有一行注釋,如果關閉注釋,服務就關閉了;但是再看另一個應用,這里涉及到了子進程模塊,還有進程間的句柄傳遞;看程序;

父進程文件:

var cp = require(’child_process’);var net = require(’net’);var child1 = cp.fork(’./c.js’);var child2 = cp.fork(’./c.js’);var netServer = net.createServer();netServer.listen(3000,function(){ child1.send(’server’, netServer); child2.send(’server’, netServer); console.log('222222'); netServer.close();})

子進程文件:

const http = require(’http’);let httpServer = http.createServer((req, res)=>{ // res.writeHead(200,{’Content-Type’:’text/plain’ + ’n’}); res.end(’ok’);})process.on(’message’, function(m, tcp){ console.log(m); tcp.on(’connection’, function(socket){httpServer.emit(’connection’,socket); })})

大家看父進程文件里也有一行注釋,但是這里的注釋去掉后,服務能正常工作,這是什么原因呢?父進程的net服務已經關閉了,已經不監聽3000端口了,想不明不白在代碼層面理解 父進程結束了,但是子進程沒有結束,但是請求的流是怎么運行的呢,或者說這個代碼是怎么運行的,思緒有點亂啊,node深入淺出,讀起來還真是有點費勁啊

問題解答

回答1:

google了一下,在stackoverflow上找到一個類似的問題

關鍵應該在這一段上handleConversion在send時有handle參數的情況下,會調用handleConversion[type]可以看到在type:'net.Server'時,send的是server._handle而接收時是這樣的

got: function(message, handle, emit) { var self = this; var server = new net.Server(); server.listen(handle, function() {emit(server); });}

也就是說父進程send了server._handle而子進程則使用這個handle重建了一個server所以實際上子進程中的server已經跟父進程中的不是同一個了,父進程的server.close自然不會對子進程產生影響

stackoverflow上的問題可以看這里

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 久久婷婷在线 | 国产成人免费全部网站 | 亚洲精品99久久久久中文字幕 | 亚洲国产精品久久久久久网站 | 亚洲线精品久久一区二区三区 | 亚洲六月丁香色婷婷综合久久 | 国产r级| 91蝌蚪九色| 免费看黄色片视频 | 国产尤物精品视频 | 国产一级特黄老妇女大片免费 | 91精品久久久久亚洲国产 | 国产大学生一级毛片绿象 | 五月四房播 | 999毛片免费观看 | 国产成人精品系列在线观看 | 一级特黄性生活大片免费观看 | 视频一区 欧美 | 国内精品一级毛片免费看 | 奇米网色 | 国产欧美日韩精品在线 | 全免费a级毛片免费毛视频 全免费a级毛片免费看 | 丁香六月色婷婷 | 欧美换爱交换乱理伦片不卡片 | 老司机成人免费精品视频 | 久久久久久免费精品视频 | 黄色激情网址 | 国产高清国产专区国产精品 | 亚洲欧美日韩精品一区 | 欧美性视频在线激情 | 国产成人午夜性视频影院 | 日韩黄色在线观看 | 国产欧美日韩在线观看一区二区三区 | 2048亚洲精品国产 | 91中文字幕在线观看 | 两个人看的www视频中文字幕 | 成人啪精品视频免费网站 | 国产在线视频精品视频免费看 | 亚洲制服另类 | 日韩www视频 | 在线观看黄网视频免费播放 |