runAll

void Worker::runAll(void)

Exécute toutes les instances de Worker.

Remarque :

Après l'exécution de Worker::runAll(), le code qui se trouve après Worker::runAll() sera bloqué en permanence, c'est-à-dire que toute le code après Worker::runAll() ne sera pas exécuté. Toutes les instanciations de Worker doivent être effectuées avant Worker::runAll().

Paramètres

Pas de paramètre

Valeur de retour

Pas de retour

Exemple Exécution de plusieurs instances 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');
};

// Exécute toutes les instances de Worker
Worker::runAll();

Remarque :

La version Windows de Workerman ne prend pas en charge l'instanciation de plusieurs Workers dans le même fichier.
L'exemple ci-dessus ne peut pas être exécuté sous la version Windows de Workerman.

La version Windows de Workerman nécessite que l'initialisation de plusieurs instances de Worker soit placée dans des fichiers différents, comme ci-dessous :

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

// Exécute toutes les instances de Worker (il n'y a qu'une seule instance ici)
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');
};

// Exécute toutes les instances de Worker (il n'y a qu'une seule instance ici)
Worker::runAll();