onBufferDrain

الوصف:

callback Worker::$onBufferDrain

كل اتصال له منطقة تخزين مؤقت منفصلة في طبقة التطبيق، وحجم منطقة التخزين المؤقت تحدده TcpConnection::$maxSendBufferSize، القيمة الافتراضية هي 1MB، ويمكن تعديلها يدويًا. أي تغييرات ستؤثر على جميع الاتصالات.

يتم تفعيل هذه الدالة المرتجعة بعد إرسال جميع بيانات منطقة التخزين المؤقت في طبقة التطبيق. بشكل عام، يتم استخدامها مع onBufferFull، على سبيل المثال، عند onBufferFull يتم إيقاف إرسال البيانات للطرف الآخر، وعند onBufferDrain يتم استئناف كتابة البيانات.

معلمات دالة العودة

$connection

كائن الاتصال، أي مثال TcpConnection، يستخدم للعمل مع اتصالات العملاء، مثل إرسال البيانات و إغلاق الاتصال وغيرها.

مثال

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::runAll();

提示: بالإضافة إلى استخدام دوال غير مسماة كاستجابة، يمكنك الرجوع إلى هنا لاستخدام طرق استجابة أخرى.

انظر أيضًا

onBufferFull يتم تفعيله عندما تكون منطقة التخزين المؤقت لإرسال البيانات في طبقة التطبيق ممتلئة.