runAll

void Worker::runAll(void)

Executa todas as instâncias do Worker.

Nota:

Após a execução de Worker::runAll(), ele ficará permanentemente bloqueado, ou seja, o código localizado após Worker::runAll() não será executado. Todas as instâncias do Worker devem ser inicializadas antes de Worker::runAll().

Parâmetro

Nenhum parâmetro

Valor de Retorno

Nenhum retorno

Exemplo Executando várias instâncias do 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');
};

// Executa todas as instâncias do Worker
Worker::runAll();

Nota:

A versão do workerman para Windows não suporta a instância de múltiplos Workers no mesmo arquivo. O exemplo acima não pode ser executado na versão do workerman para Windows.

A versão do workerman para Windows requer que a inicialização de múltiplas instâncias do Worker seja feita em arquivos diferentes, como abaixo:

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

// Executa todas as instâncias do Worker (aqui há apenas uma instância)
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');
};

// Executa todas as instâncias do Worker (aqui há apenas uma instância)
Worker::runAll();