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

網(wǎng)絡(luò)狀況差的情況

vipbressanon

客戶端網(wǎng)絡(luò)狀況差的時候,服務(wù)端向客戶端發(fā)消息,會不會存在數(shù)據(jù)丟失的情況?如果有,那怎么解決呢?

2736 1 0
1個回答

phpcreeper

這個理論上是涉及內(nèi)核socket緩沖區(qū)的讀寫,結(jié)合workerman的還有個應(yīng)用緩沖區(qū)的讀寫,這里你可以簡單的理解為有一層數(shù)據(jù)緩沖區(qū)即可,我們拿其中的一端比如服務(wù)端來來說【客戶端道理一樣的】理論上當數(shù)據(jù)緩沖區(qū)滿了的時候,意味著對端的客戶端已經(jīng)無法讀取數(shù)據(jù)或者讀取的速度遠慢于服務(wù)端,也就是緩沖區(qū)不可再寫,比如遇上客戶端網(wǎng)絡(luò)狀況差這種情況,此時服務(wù)端在從一開始發(fā)送數(shù)據(jù)到緩沖區(qū)滿的期間數(shù)據(jù)是不會丟的,因為存緩沖區(qū)了,但是滿了以后要是還是繼續(xù)發(fā)的話,數(shù)據(jù)包就會丟棄。

所以這種情況下的一般解決方案是控制流量:

$connection->onBufferFull = function($connection){
    //暫停發(fā)送
}
$connection->onBufferDrain = function($connection){
    //繼續(xù)發(fā)送
}
  • 暫無評論
年代過于久遠,無法發(fā)表回答
??