runAll

void Worker::runAll(void)

Alle Worker-Instanzen ausführen.

Hinweis:

Nach dem Aufruf von Worker::runAll() wird das Programm dauerhaft blockiert, das bedeutet, dass der Code, der sich nach Worker::runAll() befindet, nicht ausgeführt wird. Alle Worker-Instanziierungen sollten vor dem Aufruf von Worker::runAll() erfolgen.

Parameter

Keine Parameter

Rückgabewert

Kein Rückgabewert

Beispiel Mehrere Worker-Instanzen ausführen

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

// Alle Worker-Instanzen ausführen
Worker::runAll();

Hinweis:

Die Windows-Version von Workerman unterstützt es nicht, mehrere Worker in derselben Datei zu instanziieren. Das obige Beispiel kann nicht unter der Windows-Version von Workerman ausgeführt werden.

Die Windows-Version von Workerman erfordert, dass mehrere Worker-Instanzen in verschiedenen Dateien initialisiert werden, wie unten gezeigt:

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

// Alle Worker-Instanzen ausführen (hier gibt es nur eine Instanz)
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');
};

// Alle Worker-Instanzen ausführen (hier gibt es nur eine Instanz)
Worker::runAll();