connections

คำอธิบาย:

array Worker::$connections

รูปแบบคือ

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

คุณสมบัตินี้เก็บ วัตถุการเชื่อมต่อของไคลเอนต์ ทั้งหมดใน กระบวนการปัจจุบัน โดยที่ id คือหมายเลข id ของการเชื่อมต่อ ดูรายละเอียดได้ที่เอกสาร TcpConnection's id property

$connections มีประโยชน์มากเมื่อทำการส่งข้อมูลแบบเผยแพร่หรือเมื่อได้รับวัตถุการเชื่อมต่อจากหมายเลข id ของการเชื่อมต่อ

ถ้าคุณทราบหมายเลขของการเชื่อมต่อคือ $id คุณสามารถเรียกใช้ $worker->connections[$id] เพื่อรับวัตถุการเชื่อมต่อที่เกี่ยวข้อง เพื่อดำเนินการกับการเชื่อมต่อ socket ที่เกี่ยวข้อง เช่น การส่งข้อมูลผ่าน $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
Worker::runAll();