runAll

function void Worker::runAll(void)

รันโปรแกรมทั้งหมดของ Worker instance ทุกตัว

โน้ต:
หลังจากการทำ Worker::runAll() จะทำให้โปรแกรมติดอยู่อย่างต่อเนื่อง ก็คือโค้ดที่อยู่หลัง Worker::runAll() จะไม่ทำงาน การสร้าง Worker instance ทั้งหมดควรจะทำหลังจาก Worker::runAll()

พารามิเตอร์

ไม่มีพารามิเตอร์

ค่าที่คืน

ไม่มีค่าที่คืน

ตัวอย่าง การรัน Worker instance หลายตัว

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 instance ทั้งหมด
Worker::runAll();

โน้ต:
workerman เวอร์ชั่นสำหรับ Windows ไม่สนับสนุนการสร้าง Worker instance หลายตัวในไฟล์เดียวกัน
ตัวอย่างด้านบนไม่สามารถทำงานบน workerman เวอร์ชั่นสำหรับ Windows ได้

workerman เวอร์ชั่นสำหรับ Windows ต้องการให้การสร้าง Worker instance หลายตัวทำในไฟล์ที่แตกต่างกัน ดังตัวอย่างต่อไปนี้

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 instance ทั้งหมด(ในที่นี้มีเพียง instance เดียว)
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 instance ทั้งหมด(ในที่นี้มีเพียง instance เดียว)
Worker::runAll();