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.