onBufferDrain

Описание:

callback Worker::$onBufferDrain

У каждого соединения есть отдельный буфер отправки на уровне приложения, размер буфера определяется TcpConnection::$maxSendBufferSize, значение по умолчанию составляет 1MB, его можно изменить вручную, изменения будут применены ко всем соединениям.

Этот колбек вызывается после того, как все данные из буфера отправки на уровне приложения были отправлены. Обычно используется в паре с onBufferFull, например, чтобы остановить отправку данных на удаленную сторону при onBufferFull и возобновить запись данных при 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 вызывается, когда буфер отправки на уровне приложения соединения заполнен.