onBufferDrain
說明:
callback Worker::$onBufferDrain
每個連線都有一個獨立的應用層發送緩衝區,緩衝區大小由TcpConnection::$maxSendBufferSize
決定,預設值為1MB,可以手動設定更改大小,更改後會對所有連線生效。
該回調在應用層發送緩衝區數據全部發送完畢後觸發。一般與onBufferFull配合使用,例如在onBufferFull時停止向對端繼續send數據,在onBufferDrain恢復寫入數據。
回調函數的參數
$connection
連線物件,即TcpConnection實例,用於操作客戶端連線,如發送數據,關閉連線等
範例
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8484');
$worker->onBufferFull = function(TcpConnection $connection)
{
echo "bufferFull and do not send again\n";
};
$worker->onBufferDrain = function(TcpConnection $connection)
{
echo "buffer drain and continue send\n";
};
// 運行worker
Worker::runAll();
提示:除了使用匿名函數作為回調,還可以參考這裡使用其他回調寫法。
參見
onBufferFull 當連線的應用層發送緩衝區滿時觸發