runAll
void Worker::runAll(void)
Exécute toutes les instances Worker.
Remarque : Une fois que Worker::runAll() est exécuté, il sera bloqué de manière permanente, ce qui signifie que le code après Worker::runAll() ne sera pas exécuté. Toutes les instances de Worker doivent être initialisées avant Worker::runAll().
Paramètres
Aucun paramètre
Valeur de retour
Aucune valeur de retour
Exemple : Exécuter 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é dans la version Windows de workerman.
La version Windows de workerman nécessite que les initialisations des instances de Worker soient placées 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 (ici, il n'y a qu'une seule instance)
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 (ici, il n'y a qu'une seule instance)
Worker::runAll();