onClose
الوصف:
callback Worker::$onClose
يتم استدعاء وظيفة رد الاتصال عندما يتم قطع اتصال العميل مع Workerman. بغض النظر عن كيفية قطع الاتصال، سيتم استدعاء onClose بمجرد حدوث الانفصال. كل اتصال سيؤدي إلى استدعاء onClose مرة واحدة فقط.
تنبيه: إذا تم قطع الاتصال من الطرف الآخر بسبب حالات شديدة مثل انقطاع الشبكة أو انقطاع التيار الكهربائي، فلن يتمكن Workerman من إدراك أن الاتصال قد قطع لأنه لا يمكنه إرسال حزمة tcp fin إلى Workerman في الوقت المناسب، وبالتالي لن يتم استدعاء onClose في الوقت المناسب. تحتاج هذه الحالة إلى حل عبر نبضات القلب على مستوى التطبيق. لمزيد من المعلومات حول تحقيق نبضات القلب في Workerman، يرجى الرجوع إلى هنا. إذا كنت تستخدم إطار GatewayWorker، فيمكنك استخدام آلية نبض القلب الخاصة بإطار GatewayWorker مباشرة، ارجع إلى هنا.
نظرًا لأن udp غير متصل، فلن يتم استدعاء رد الاتصال onConnect عند استخدام udp، ولن يتم استدعاء رد الاتصال 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();
تنبيه: بالإضافة إلى استخدام دالة مجهولة كوظيفة رد الاتصال، يمكنك أيضًا الرجوع إلى هنا لاستخدام صيغ أخرى لكتابة رد الاتصال.