onBufferDrain

Beschreibung:

callback Worker::$onBufferDrain

Jede Verbindung hat einen separaten Anwendungsschicht-Sendepuffer, dessen Größe durch TcpConnection::$maxSendBufferSize bestimmt wird. Der Standardwert beträgt 1 MB und kann manuell geändert werden. Änderungen haben Auswirkungen auf alle Verbindungen.

Dieser Callback wird ausgelöst, nachdem alle Daten im Anwendungsschicht-Sendepuffer gesendet wurden. Er wird normalerweise zusammen mit onBufferFull verwendet, z. B. um beim onBufferFull das Senden von Daten an die Gegenstelle zu stoppen und beim onBufferDrain das Schreiben von Daten wiederherzustellen.

Parameter der Callback-Funktion

$connection

Das Verbindungsobjekt, also eine Instanz von TcpConnection, die zum Steuern der Clientverbindung verwendet wird, wie z. B. Daten senden, Verbindung schließen usw.

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 "bufferFull und nicht erneut senden\n";
};
$worker->onBufferDrain = function(TcpConnection $connection)
{
    echo "Puffer entleert und senden fortsetzen\n";
};
// Worker ausführen
Worker::runAll();

Hinweis: Neben der Verwendung von anonymen Funktionen als Callback können auch hier andere Callback-Formate verwendet werden.

Siehe auch

onBufferFull wird ausgelöst, wenn der Anwendungsschicht-Sendepuffer der Verbindung voll ist.