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