onBufferDrain
Beschreibung:
callback Worker::$onBufferDrain
Jede Verbindung verfügt über einen separaten Anwendungs-Empfangspuffer, dessen Größe durch TcpConnection::$maxSendBufferSize
bestimmt wird. Der Standardwert beträgt 1 MB und kann manuell geändert werden. Diese Änderung wirkt sich auf alle Verbindungen aus.
Dieser Rückruf wird ausgelöst, nachdem alle Daten im Anwendungs-Empfangspuffer erfolgreich gesendet wurden. In der Regel wird es in Verbindung mit onBufferFull
verwendet, zum Beispiel, um das Senden von Daten an den Peer zu stoppen, wenn onBufferFull
auftritt, und das Schreiben von Daten in onBufferDrain
wieder aufzunehmen.
Parameter der Rückruffunktion
$connection
Verbindungsobjekt, d.h. die Instanz von TcpConnection, die für die Bearbeitung der Client-Verbindung, wie das Senden von Daten, das Schließen der Verbindung usw., verwendet wird.
Beispiel
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 "Buffer ist voll und sende nicht erneut\n";
};
$worker->onBufferDrain = function(TcpConnection $connection)
{
echo "Puffer entleeren und fortlaufend senden\n";
};
// Worker ausführen
Worker::runAll();
Hinweis: Neben der Verwendung anonymer Funktionen als Rückruf können auch andere Rückruf-Schreibweisen hier verwendet werden.
Siehe auch
onBufferFull: Wird ausgelöst, wenn der Anwendungs-Empfangspuffer der Verbindung voll ist