bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

windows下node.js進程間傳遞客戶端socket的一些規律

最近在update我的一個github項目的時候,想要把原來單一進程的模式改成多進程的模式。

超過十多年行業經驗,技術領先,服務至上的經營模式,全靠網絡和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業務范圍包括了:成都網站制作、網站建設,成都網站推廣,成都網站優化,整體網絡托管,微信小程序,微信開發,app軟件開發公司,同時也可以讓客戶的網站和網絡營銷和我們一樣獲得訂單和生意!

事情是這樣的,我做了一個HTTP服務器,支持動態腳本。

在完成了一大堆各種各樣的特性后,遇到了一個腳本超時的問題。

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

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

所以,如果Activity中出現死循環,那么整個http服務器就會因此死掉,所以我想做一個檢測腳本超時的特性。

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

好了,進入正題。

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

想法是這樣的,但是遇到了一些問題。

本以為這個事情可以很輕松的完成,但是在主進程發送socket給子進程后,子進程會綁定一個data事件在傳來的socket上。問題來了,在子進程中,如論如何都無法出發data事件。

后經實驗,情況是這樣的,socket在被主進程發送給子進程之前,客戶端發送來的數據就已經發送給主進程了,所以在子進程中沒有數據可讀,自然就如法出發data事件。

經過修改,我在主進程中讀取一個請求數據,然后連socket帶第一次讀取的數據,一起發送給了子進程。

主進程將socket發送給子進程后,主進程中的socket好像會被自動關閉。好吧,這對我沒有影響。

簡短的總結:

客戶端socket會一次性發送一條請求的全部數據至主進程,子進程讀取socket前所有內容都已經被發送給主進程了。

在某個進程發送socket給其他進程后,在本進程內的socket會被標記為已關閉。

希望我的一點點實踐可以幫到讀到這篇文章的同志。

當前標題:windows下node.js進程間傳遞客戶端socket的一些規律
地址分享:http://vcdvsql.cn/article28/podgjp.html

成都網站建設公司_創新互聯,為您提供網站營銷網站維護App設計做網站網站策劃外貿建站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站優化排名