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 যখন সংযোগের অ্যাপ্লিকেশন স্তরের প্রেরণ বাফার পূর্ণ হয় তখন ট্রিগার হয়।