国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

socket.io為什么不能支持同端口多進(jìn)程模式?

justkids

之前一個(gè)問(wèn)題中說(shuō)socket.io的服務(wù)端運(yùn)行機(jī)制決定每個(gè)端口只能開(kāi)啟一個(gè)進(jìn)程。(http://wenda.workerman.net/?/question/882
能再進(jìn)一步說(shuō)明一下 為啥么,它的機(jī)制有什么不同的導(dǎo)致一個(gè)端口只能開(kāi)啟一個(gè)進(jìn)程?

6462 1 0
1個(gè)回答

walkor 打賞

主要是因?yàn)槎鄠€(gè)進(jìn)程間需要實(shí)時(shí)同步客戶端數(shù)據(jù)非常困難。數(shù)據(jù)包括socket.io客戶端sid數(shù)據(jù)、要推送給客戶端的數(shù)據(jù)、業(yè)務(wù)給socket.io連接對(duì)象賦值的動(dòng)態(tài)屬性變量等

拿推送數(shù)據(jù)同步問(wèn)題舉例
1、在瀏覽器不支持websocket時(shí),socket.io會(huì)使用http協(xié)議和服務(wù)器通訊(socket.io握手時(shí)也是http請(qǐng)求)。
2、http協(xié)議是請(qǐng)求響應(yīng)式的,客戶端沒(méi)有發(fā)起http請(qǐng)求時(shí),服務(wù)端無(wú)法主動(dòng)推送數(shù)據(jù)給瀏覽器。
3、如果一個(gè)端口多個(gè)進(jìn)程監(jiān)聽(tīng),瀏覽器發(fā)起http請(qǐng)求可能會(huì)發(fā)送到不同的進(jìn)程。
4、假如服務(wù)端要給某個(gè)客戶端推送數(shù)據(jù),此時(shí)客戶端還沒(méi)發(fā)出http請(qǐng)求,服務(wù)端不能直接發(fā)送給瀏覽器
5、這時(shí)請(qǐng)求只能在某個(gè)進(jìn)程(假設(shè)是A進(jìn)程)內(nèi)部緩沖,等待客戶端發(fā)器http請(qǐng)求
6、假設(shè)瀏覽器發(fā)起http請(qǐng)求到B進(jìn)程,那么會(huì)導(dǎo)致A進(jìn)程的要推送的數(shù)據(jù)無(wú)法推送給瀏覽器

  • lt 2017-01-30

    A進(jìn)程與B進(jìn)程能不能通過(guò)GlobalData之類的組件共享緩沖數(shù)據(jù)解決這個(gè)問(wèn)題?如果可以,GW框架應(yīng)該能實(shí)現(xiàn)對(duì)socketIO協(xié)議的支持吧?那就完美了,分布式部署更方便。

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??