onBufferDrain

Descrizione:

callback Worker::$onBufferDrain

Ogni connessione ha un buffer di invio a livello applicativo separato, la cui dimensione è determinata da TcpConnection::$maxSendBufferSize, il valore predefinito è 1MB, ed è possibile modificare manualmente la dimensione; una volta modificata, la nuova dimensione avrà effetto su tutte le connessioni.

Questo callback viene attivato dopo che tutti i dati nel buffer di invio dell'applicazione sono stati completamente inviati. Di solito viene utilizzato in combinazione con onBufferFull; ad esempio, si può smettere di inviare dati all'altro lato quando onBufferFull è attivo, e riprendere l'invio di dati quando onBufferDrain viene attivato.

Parametri della funzione di callback

$connection

Oggetto di connessione, ovvero un'istanza di TcpConnection, utilizzata per gestire la connessione del client, come invio di dati, chiusura della connessione e altro.

Esempio

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 e non inviare di nuovo\n";
};
$worker->onBufferDrain = function(TcpConnection $connection)
{
    echo "buffer drain e continua ad inviare\n";
};
// Esegui il worker
Worker::runAll();

Nota: oltre a utilizzare funzioni anonime come callback, è possibile fare riferimento qui per utilizzi di altre scritture di callback.

Vedi anche

onBufferFull attivato quando il buffer di invio a livello applicativo della connessione è pieno.