runAll
void Worker::runAll(void)
Esegue tutte le istanze di Worker.
Attenzione:
Dopo che Worker::runAll() è stato eseguito, verrà bloccato permanentemente, il che significa che il codice che si trova dopo Worker::runAll() non verrà eseguito. Tutte le istanze di Worker dovrebbero essere instantiate prima di Worker::runAll().
Parametri
Nessun parametro
Valore di ritorno
Nessun valore di ritorno
Esempio Eseguire più istanze di 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');
};
// Esegue tutte le istanze di Worker
Worker::runAll();
Attenzione:
La versione di workerman per Windows non supporta l'instanziazione di più Worker nello stesso file.
L'esempio sopra non può essere eseguito nella versione di workerman per Windows.
La versione di workerman per Windows richiede che l'inizializzazione di più istanze di Worker venga posizionata in file diversi, come di seguito
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');
};
// Esegue tutte le istanze di Worker (qui c'è solo un'istanza)
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');
};
// Esegue tutte le istanze di Worker (qui c'è solo un'istanza)
Worker::runAll();