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

長(zhǎng)連接轉(zhuǎn)發(fā)會(huì)阻塞嗎?對(duì)后端的請(qǐng)求做一個(gè)并發(fā)控制,會(huì)阻塞嗎,會(huì)斷開(kāi)嗎?

augushong

問(wèn)題描述

長(zhǎng)連接轉(zhuǎn)發(fā)會(huì)阻塞嗎?我想對(duì)后端的請(qǐng)求做一個(gè)并發(fā)控制,超出的來(lái)自前端連接暫時(shí)不處理,會(huì)阻塞嗎,會(huì)斷開(kāi)嗎?

我也有比較豐富的workerman開(kāi)發(fā)經(jīng)驗(yàn),做個(gè)聊天服務(wù)端、物聯(lián)網(wǎng)服務(wù)端、內(nèi)網(wǎng)穿透、端口轉(zhuǎn)發(fā)等等。但是上面這個(gè)問(wèn)題,還是比較糾結(jié)。

我想做的是這樣的,后端運(yùn)行的是圖片轉(zhuǎn)換的http服務(wù),但是很吃硬件,超出內(nèi)存會(huì)出錯(cuò),所以要限制并發(fā),而且一次請(qǐng)求響應(yīng)的時(shí)間很長(zhǎng)。

所以來(lái)自前端的連接,我打算通過(guò)workerman做個(gè)代理?;镜牧鞒滔拢?br />
可以看到,實(shí)際上流程很簡(jiǎn)單。

這里要注意的是:

  • 要控制對(duì)后端的并發(fā)
  • 不要直接斷開(kāi)前端請(qǐng)求(連接onConnect之后先不要處理,等后端空閑了在轉(zhuǎn)發(fā)到后端)
  • 后端的響應(yīng)時(shí)間可能很長(zhǎng)

所以我的問(wèn)題是:

  • 等待后端空閑時(shí)收到的連接會(huì)斷開(kāi)嗎(因?yàn)檫@中間不會(huì)傳輸心跳以維持鏈接,這是個(gè)Http的請(qǐng)求)
  • 后端的響應(yīng)時(shí)間是比較長(zhǎng)的,會(huì)發(fā)生阻塞嗎?

是不是需要做特殊的代碼處理。
因?yàn)槲夷芟氲降拇a基本如下:

$worker::$serverConnectionCount = 0;
$worker::$clientConnectionHub = [];

$worker->onWorkerStart = function(){
    Timer::add(function(){
        if($worker::$serverConnectionCount <4) {
            $client_conn = array_pop($worker::$clientConnectionHub);
            $server_conn =  new AsyncTcpConnection('后端服務(wù)地址')

            $client_conn->pipe($server_conn);
            $server_conn->pipe($client_conn);
            //實(shí)際上應(yīng)該自定義實(shí)現(xiàn)轉(zhuǎn)發(fā),可以在onClose時(shí)調(diào)整$serverConnectionCount的值
            $worker::$serverConnectionCount++;

        }
    },10)
}
$worker->onConnect  = function($connection){
    $worker:$clientConnectionHub[] = $connection;

}
1158 2 0
2個(gè)回答

walkor 打賞

等待后端空閑時(shí)收到的連接會(huì)斷開(kāi)嗎(因?yàn)檫@中間不會(huì)傳輸心跳以維持鏈接,這是個(gè)Http的請(qǐng)求)

可能會(huì)斷開(kāi),瀏覽器可能會(huì)在一定時(shí)間內(nèi)沒(méi)收到響應(yīng)就返回超時(shí),這個(gè)時(shí)間猜測(cè)在1分鐘左右。
另外外網(wǎng)環(huán)境連接超過(guò)1分鐘不通訊連接可能就被路由節(jié)點(diǎn)清理了。

后端的響應(yīng)時(shí)間是比較長(zhǎng)的,會(huì)發(fā)生阻塞嗎?

workerman作為網(wǎng)絡(luò)代理不會(huì)發(fā)生阻塞。

  • augushong 2022-12-16

    好的。
    這里的前端只是相對(duì)于這個(gè)流程來(lái)說(shuō),實(shí)際上會(huì)用隊(duì)列的消費(fèi)者發(fā)起請(qǐng)求,
    實(shí)際上前端、路由、后端都在一個(gè)局域網(wǎng)下,
    打算用workerman 多進(jìn)程守護(hù),發(fā)起curl請(qǐng)求,因?yàn)樵O(shè)計(jì)文件傳輸,感覺(jué)用http簡(jiǎn)單靠譜一點(diǎn)。
    十分感謝。
    只要不會(huì)阻塞就好。如果還是會(huì)斷開(kāi)的話,實(shí)在不行這部分就放棄http的方式,自己寫(xiě)tcp連接。
    十分感謝

augushong

onmessage事件觸發(fā)時(shí),也不會(huì)阻塞嗎?

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??