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

คำแนะนำ: นอกจากการใช้ฟังก์ชันนิรนามเป็นการเรียกกลับแล้ว ยังสามารถ ดูรายละเอียดที่นี่ เพื่อใช้รูปแบบการเรียกกลับอื่นๆ

ดูเพิ่มเติม

onBufferFull จะถูกเรียกเมื่อบัฟเฟอร์การส่งที่ระดับแอปพลิเคชันเต็มแล้ว