الاتصالات
الشرح:
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();