onBufferDrain

Description:

callback Worker::$onBufferDrain

Chaque connexion dispose d'un tampon d'envoi au niveau de l'application distinct, dont la taille est déterminée par TcpConnection::$maxSendBufferSize, dont la valeur par défaut est de 1 Mo. Il est possible de modifier cette taille manuellement, et les modifications s'appliqueront à toutes les connexions.

Ce rappel est déclenché lorsque toutes les données du tampon d'envoi au niveau de l'application ont été envoyées. Il est généralement utilisé en conjonction avec onBufferFull, par exemple, pour arrêter l'envoi de données à l'autre partie lors de onBufferFull, puis reprendre l'écriture de données lors de onBufferDrain.

Paramètres de la fonction de rappel

$connection

Objet de connexion, c'est-à-dire une instance de TcpConnection, utilisée pour opérer sur les connexions clients, comme envoyer des données, fermer la connexion, etc.

Exemple

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";
};
// 运行worker
Worker::runAll();

Note : En plus d'utiliser des fonctions anonymes comme rappels, vous pouvez aussi vous référer ici pour utiliser d'autres écritures de rappel.

Voir aussi

onBufferFull déclenché lorsque le tampon d'envoi au niveau de l'application de la connexion est plein.