onBufferDrain
Açıklama:
geriçağırma işlevi Worker::$onBufferDrain
Her bağlantının ayrı bir uygulama katmanı gönderi tamponu bulunmaktadır ve tampon boyutu TcpConnection::$maxSendBufferSize
tarafından belirlenir, varsayılan değer 1MB'dir ve manuel olarak değiştirilerek değişikliğin tüm bağlantılara etki etmesi sağlanabilir.
Bu geriçağırma, uygulama katmanı gönderi tamponu verilerinin tamamının gönderildikten sonra tetiklenir. Genellikle onBufferFull ile birlikte kullanılır, örneğin onBufferFull'de karşı tarafa veri göndermeyi durdurmak, onBufferDrain'de veri yazmayı kaldırma işlemi gibi.
Geriçağırma işlevi parametreleri
$connection
Bağlantı nesnesi, yani TcpConnection örneği, istemci bağlantısını işlemek için kullanılır, örneğin veri gönderme, bağlantıyı kapatma vb.
Örnek
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 "tamponDolu ve tekrar gönderme\n";
};
$worker->onBufferDrain = function(TcpConnection $connection)
{
echo "tampon boşaltma ve göndermeye devam etme\n";
};
// Worker çalıştır
Worker::runAll();
Not: Geriçağırma olarak anonim işlevler kullanmanın dışında, başka geriçağırma yazımı için buraya bakabilirsiniz.
Ayrıca bakınız
onBufferFull: Bağlantının uygulama katmanı gönderi tamponu dolu olduğunda tetiklenir