成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

簡短的總結(jié):

客戶端socket會一次性發(fā)送一條請求的全部數(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會被標(biāo)記為已關(guān)閉。

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

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

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

廣告

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

網(wǎng)站優(yōu)化排名
永清县| 台东市| 德令哈市| 聊城市| 兴义市| 云安县| 烟台市| 六安市| 民和| 曲周县| 谢通门县| 谷城县| 民乐县| 宁波市| 阳新县| 新和县| 呼玛县| 全州县| 呈贡县| 安康市| 保德县| 霍山县| 桐城市| 武川县| 洮南市| 齐齐哈尔市| 永寿县| 拉萨市| 岑巩县| 始兴县| 马鞍山市| 江陵县| 五大连池市| 五指山市| 通渭县| 郯城县| 黑河市| 天全县| 繁昌县| 开远市| 江都市|