onClose
বিবরণ:
callback Worker::$onClose
যখন ক্লায়েন্টের সংযোগ Workerman থেকে বিচ্ছিন্ন হয় তখন এটি একটি কলব্যাক ফাংশন ট্রিগার করে। সংযোগ কিভাবে বিচ্ছিন্ন হয় তাতে কোন পার্থক্য নেই, যেদিকেই বিচ্ছিন্ন হয় onClose ট্রিগার হবে। প্রত্যেকটি সংযোগ শুধুমাত্র একবার onClose ট্রিগার করবে।
দৃষ্টি দিন: যদি বিপরীত পক্ষটি নেটওয়ার্ক বিচ্ছিন্নতা বা বিদ্যুৎ বিচ্ছিন্নতার মতো চরম অবস্থার কারণে বিচ্ছিন্ন হয়, তখন tcp এর fin প্যাকেট কাজার জন্য সময়মত Workerman এ পাঠানো সম্ভব না হওয়ার জন্য Workerman জানবে না যে সংযোগ বিচ্ছিন্ন হয়েছে, এবং তাই সময়মত onClose ট্রিগার করতে পারবে না। এই পরিস্থিতিটি অ্যাপ্লিকেশন স্তরের হার্টবিটের মাধ্যমে সমাধান করা উচিত। Workerman এ সংযোগের হার্টবিটের বাস্তবায়ন এখানে দেখুন। যদি আপনি GatewayWorker ফ্রেমওয়ার্ক ব্যবহার করে থাকেন, তবে সরাসরি GatewayWorker ফ্রেমওয়ার্কের হার্টবিট মেকানিজম ব্যবহার করা উচিত, এখানে দেখুন।
যেহেতু udp হচ্ছে কানেকশনলেস, তাই udp ব্যবহারের সময় onConnect কলব্যাক ট্রিগার হবে না, এবং onClose কলব্যাকও ট্রিগার হবে না।
কলব্যাক ফাংশনের প্যারামিটার
$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->onClose = function(TcpConnection $connection)
{
echo "connection closed\n";
};
// ওয়ার্কার চলান
Worker::runAll();
ইঙ্গিত: অজ্ঞাত ফাংশনকে কলব্যাক হিসাবে ব্যবহারের পাশাপাশি এখানে অন্যান্য কলব্যাক লেখার পদ্ধতি ব্যবহার করতেও পারেন।