欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

windows下node.js進(jìn)程間傳遞客戶端socket的一些規(guī)律

最近在update我的一個(gè)github項(xiàng)目的時(shí)候,想要把原來(lái)單一進(jìn)程的模式改成多進(jìn)程的模式。

超過(guò)十多年行業(yè)經(jīng)驗(yàn),技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營(yíng)模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:成都網(wǎng)站制作、網(wǎng)站建設(shè),成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,微信小程序,微信開(kāi)發(fā),app軟件開(kāi)發(fā)公司,同時(shí)也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營(yíng)銷和我們一樣獲得訂單和生意!

事情是這樣的,我做了一個(gè)HTTP服務(wù)器,支持動(dòng)態(tài)腳本。

在完成了一大堆各種各樣的特性后,遇到了一個(gè)腳本超時(shí)的問(wèn)題。

在我的HTTP服務(wù)器中,將頁(yè)面分成了Template和Activity兩個(gè)部分,一個(gè)是用做VIEW的,一個(gè)是用作MODULE的,也就是類似于ASP啦。

但是,由于NODE.js是單進(jìn)程的,所以我無(wú)法控制Activity中的代碼(為用戶腳本)。

所以,如果Activity中出現(xiàn)死循環(huán),那么整個(gè)http服務(wù)器就會(huì)因此死掉,所以我想做一個(gè)檢測(cè)腳本超時(shí)的特性。

===================================割了==========================

好了,進(jìn)入正題。

我的想法是這樣的,從主進(jìn)程來(lái)接受socket,然后send給子進(jìn)程,然后由子進(jìn)程進(jìn)行相關(guān)的操作(包括域名分析、POST讀取等行為)之后執(zhí)行請(qǐng)求的用戶Activity。這個(gè)字進(jìn)程每隔一段時(shí)間向主進(jìn)程發(fā)送一個(gè)alive消息,如果超過(guò)了一段時(shí)間子進(jìn)程都沒(méi)有向主進(jìn)程發(fā)送alive消息,那么主進(jìn)程就kill掉子進(jìn)程,防止超時(shí)的腳本繼續(xù)執(zhí)行,之后新啟一個(gè)進(jìn)程代替剛才被kill掉的子進(jìn)程。

想法是這樣的,但是遇到了一些問(wèn)題。

本以為這個(gè)事情可以很輕松的完成,但是在主進(jìn)程發(fā)送socket給子進(jìn)程后,子進(jìn)程會(huì)綁定一個(gè)data事件在傳來(lái)的socket上。問(wèn)題來(lái)了,在子進(jìn)程中,如論如何都無(wú)法出發(fā)data事件。

后經(jīng)實(shí)驗(yàn),情況是這樣的,socket在被主進(jìn)程發(fā)送給子進(jìn)程之前,客戶端發(fā)送來(lái)的數(shù)據(jù)就已經(jīng)發(fā)送給主進(jìn)程了,所以在子進(jìn)程中沒(méi)有數(shù)據(jù)可讀,自然就如法出發(fā)data事件。

經(jīng)過(guò)修改,我在主進(jìn)程中讀取一個(gè)請(qǐng)求數(shù)據(jù),然后連socket帶第一次讀取的數(shù)據(jù),一起發(fā)送給了子進(jìn)程。

主進(jìn)程將socket發(fā)送給子進(jìn)程后,主進(jìn)程中的socket好像會(huì)被自動(dòng)關(guān)閉。好吧,這對(duì)我沒(méi)有影響。

簡(jiǎn)短的總結(jié):

客戶端socket會(huì)一次性發(fā)送一條請(qǐng)求的全部數(shù)據(jù)至主進(jìn)程,子進(jìn)程讀取socket前所有內(nèi)容都已經(jīng)被發(fā)送給主進(jìn)程了。

在某個(gè)進(jìn)程發(fā)送socket給其他進(jìn)程后,在本進(jìn)程內(nèi)的socket會(huì)被標(biāo)記為已關(guān)閉。

希望我的一點(diǎn)點(diǎn)實(shí)踐可以幫到讀到這篇文章的同志。

當(dāng)前標(biāo)題:windows下node.js進(jìn)程間傳遞客戶端socket的一些規(guī)律
地址分享:http://chinadenli.net/article28/podgjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、網(wǎng)站維護(hù)、App設(shè)計(jì)、做網(wǎng)站、網(wǎng)站策劃、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名