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.