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();
Внимание:
Версия workerman для windows не поддерживает инициацию нескольких экземпляров Worker в одном файле.
Приведённый выше пример не будет работать в версии workerman для windows.
Версия workerman для windows требует инициации нескольких экземпляров 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();