onBufferDrain
Descrizione:
callback Worker::$onBufferDrain
Ogni connessione ha un buffer di invio a livello di applicazione separato, la dimensione del buffer è determinata da TcpConnection::$maxSendBufferSize
, il valore predefinito è 1 MB, ma può essere modificato manualmente e avrà effetto su tutte le connessioni.
Questo callback viene attivato quando tutti i dati nel buffer di invio a livello di applicazione sono stati inviati. Di solito viene utilizzato insieme a onBufferFull, ad esempio, interrompendo l'invio di dati all'altra parte in onBufferFull e riprendendo la scrittura dei dati in onBufferDrain.
Parametro della funzione di callback
$connection
Oggetto di connessione, ovvero un'istanza di TcpConnection, utilizzato per gestire la connessione del client, ad esempio invio di dati, chiusura della connessione, ecc.
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 and do not send again\n";
};
$worker->onBufferDrain = function(TcpConnection $connection)
{
echo "buffer drain and continue send\n";
};
// Avvia il worker
Worker::runAll();
Nota: Oltre all'uso di una funzione anonima come callback, è possibile utilizzare altri metodi di callback.
Vedi anche
onBufferFull Quando il buffer di invio a livello di applicazione della connessione è pieno, scatena l'evento.