الاتصالات

الوصف:

array Worker::$connections

يكون الشكل كالتالي

array(معرف=>اتصال, معرف=>اتصال, ...)

يحتوي هذا الخاصية على جميع كائنات الاتصال لـالعملية الحالية. حيث يكون المعرف هو رقم تعريف الاتصال، للتفاصيل انظر الدليل خاصية id في TcpConnection.

$connections مفيد جدًا عند البث أو للحصول على كائن الاتصال بناءً على معرف الاتصال.

في حالة معرفة رقم تعريف الاتصال بأنه $id، يمكن الحصول بسهولة على كائن الاتصال المُقابل عبر $worker->connections[$id] وبالتالي التحكم بالاتصال بمقبسها المقابل، على سبيل المثال عبر إرسال البيانات بواسطة $worker->connections[$id]->send('...').

تنويه: في حالة إغلاق الاتصال (يُشغَّل onClose)، يتم حذف الـconnection المقابلة من مصفوفة الـ$connections.

تنويه: يجب عدم تعديل هذه الخاصية من قبل المطور، حيث قد يؤدي ذلك إلى حالات غير متوقعة.

مثال:

use Workerman\Worker;
use Workerman\Timer;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker('text://0.0.0.0:2020');
// عند بدء التشغيل، قم بتعيين مؤقت لإرسال البيانات بانتظام إلى جميع اتصالات العميل
$worker->onWorkerStart = function($worker)
{
    // كل 10 ثوانٍ
    Timer::add(10, function() use ($worker)
    {
        // قم بتصفح جميع كائنات اتصال العميل الحالية للعملية وإرسال وقت الخادم الحالي
        foreach($worker->connections as $connection)
        {
            $connection->send(time());
        }
    });
};
// قم بتشغيل العامل
Worker::runAll();