runAll
void Worker::runAll(void)
Chạy tất cả các instance của Worker.
Lưu ý:
Sau khi thực thi Worker::runAll(), chương trình sẽ bị chặn vĩnh viễn, có nghĩa là đoạn code sau Worker::runAll() sẽ không được thực thi. Tất cả các instance của Worker phải được khởi tạo trước Worker::runAll().
Tham số
Không có tham số
Giá trị trả về
Không có giá trị trả về
Ví dụ: Chạy nhiều instance của 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');
};
// Chạy tất cả các instance của Worker
Worker::runAll();
Lưu ý:
Phiên bản Windows của workerman không hỗ trợ việc khởi tạo nhiều instance của Worker trong cùng một tệp.
Ví dụ trên sẽ không hoạt động trong phiên bản Windows của workerman.
Phiên bản Windows của workerman yêu cầu khởi tạo nhiều instance của Worker được đặt trong các tệp khác nhau, giống như sau đây
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');
};
// Chạy tất cả các instance của Worker (chỉ có một instance ở đây)
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');
};
// Chạy tất cả các instance của Worker (chỉ có một instance ở đây)
Worker::runAll();