الاتصالات
الوصف:
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();