runAll

void Worker::runAll(void)

Ejecuta todas las instancias de Worker.

Nota:

Después de ejecutar Worker::runAll(), se bloqueará permanentemente, lo que significa que el código ubicado después de Worker::runAll() no se ejecutará. Todas las instancias de Worker deben ser inicializadas antes de Worker::runAll().

Parámetros

Sin parámetros

Valor de retorno

Sin retorno

Ejemplo Ejecutar múltiples instancias de 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');
};

// Ejecutar todas las instancias de Worker
Worker::runAll();

Nota:

La versión de Workerman para Windows no admite la inicialización de múltiples Workers en el mismo archivo.
El ejemplo anterior no se puede ejecutar en la versión de Workerman para Windows.

La versión de Workerman para Windows necesita que la inicialización de múltiples instancias de Worker se coloque en diferentes archivos, como se muestra a continuación.

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');
};

// Ejecutar todas las instancias de Worker (aquí solo hay una instancia)
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');
};

// Ejecutar todas las instancias de Worker (aquí solo hay una instancia)
Worker::runAll();