الاتصالات

الشرح:

array Worker::$connections

الهيكل هو

array(id=>connection, id=>connection, ...)

تحتوي هذه الخاصية على جميع كائنات اتصالات العملاء الخاصة بـ العملية الحالية، حيث أن id هو رقم تعريف الاتصال، لمزيد من التفاصيل، يرجى الاطلاع على خاصية 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();