onBufferDrain

Описание:

callback Worker::$onBufferDrain

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

Этот обратный вызов срабатывает после того, как все данные буфера передачи на уровне приложения были отправлены. Обычно используется совместно с 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 "Буфер полон, дальнейшая отправка не выполняется\n";
};
$worker->onBufferDrain = function(TcpConnection $connection)
{
    echo "Буфер освободился, продолжение отправки\n";
};
// Запуск worker
Worker::runAll();

Примечание: Помимо использования анонимных функций в качестве обратного вызова, можно также посмотреть здесь другие способы написания обратных вызовов.

См. также

onBufferFull - Срабатывает, когда буфер передачи на уровне приложения соединения полностью заполнен