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.