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();