onBufferDrain

Descripción:

callback Worker::$onBufferDrain

Cada conexión tiene un búfer de envío a nivel de aplicación separado, cuyo tamaño está determinado por TcpConnection::$maxSendBufferSize, cuyo valor predeterminado es 1 MB. Se puede cambiar manualmente para modificar el tamaño, y este cambio se aplicará a todas las conexiones.

Este callback se activa cuando todos los datos del búfer de envío a nivel de aplicación se han enviado. Generalmente se utiliza en conjunto con onBufferFull; por ejemplo, se puede detener el envío de datos al otro extremo durante onBufferFull y reanudar el envío de datos en onBufferDrain.

Parámetros de la función de callback

$connection

El objeto de conexión, es decir, una instancia de TcpConnection, utilizado para operar la conexión del cliente, como enviar datos, cerrar la conexión, etc.

Ejemplo

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";
};
// Ejecutar worker
Worker::runAll();

Nota: Además de usar funciones anónimas como callback, también se puede consultar aquí para utilizar otros estilos de callback.

Ver también

onBufferFull se activa cuando el búfer de envío a nivel de aplicación de la conexión está lleno.