runAll
void Worker::runAll(void)
ทำการรัน Worker ทุกตัว
หมายเหตุ:
หลังจากที่ Worker::runAll() ถูกเรียกใช้งานจะทำให้เกิดการบล็อกแบบถาวร นั่นหมายถึงโค้ดที่อยู่ด้านหลัง Worker::runAll() จะไม่ถูกเรียกใช้งาน สร้างอ็อบเจ็กต์ Worker ทั้งหมดควรทำในก่อนการเรียกใช้งาน Worker::runAll()
พารามิเตอร์
ไม่มีพารามิเตอร์
ค่าที่ส่งกลับ
ไม่มีค่าที่ส่งกลับ
ตัวอย่าง รันหลาย Worker
start.php
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$http_worker = new Worker("http://0.0.0.0:2345");
$http_worker->onMessage = function(TcpConnection $connection, $data)
{
$connection->send('hello http');
};
$ws_worker = new Worker('websocket://0.0.0.0:4567');
$ws_worker->onMessage = function(TcpConnection $connection, $data)
{
$connection->send('hello websocket');
};
// รัน Worker ทุกตัว
Worker::runAll();
หมายเหตุ:
เวอร์ชัน windows ของ workerman ไม่รองรับการสร้างหลาย Worker ในไฟล์เดียวกัน
ตัวอย่างข้างต้นไม่สามารถทำงานได้ในเวอร์ชัน windows ของ workerman
เวอร์ชัน windows ของ workerman ต้องวางการสร้างอ็อบเจ็กต์ Worker หลายตัวในไฟล์ที่แตกต่างกัน เช่นตัวอย่างด้านล่างนี้
start_http.php
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$http_worker = new Worker("http://0.0.0.0:2345");
$http_worker->onMessage = function(TcpConnection $connection, $data)
{
$connection->send('hello http');
};
// รัน Worker ทุกตัว (ที่นี่มีเพียงอันเดียว)
Worker::runAll();
start_websocket.php
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$ws_worker = new Worker('websocket://0.0.0.0:4567');
$ws_worker->onMessage = function(TcpConnection $connection, $data)
{
$connection->send('hello websocket');
};
// รัน Worker ทุกตัว (ที่นี่มีเพียงอันเดียว)
Worker::runAll();