runAll
void Worker::runAll(void)
모든 Worker 인스턴스를 실행합니다.
주의:
Worker::runAll()을 실행한 후에는 영구적으로 차단됩니다. 즉, Worker::runAll() 이후에 있는 코드는 실행되지 않습니다. 모든 Worker 인스턴스화는 Worker::runAll() 전에 이루어져야 합니다.
매개변수
매개변수 없음
반환값
반환값 없음
예제 여러 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');
};
// 모든 Worker 인스턴스를 실행합니다
Worker::runAll();
주의:
Windows 버전의 Workerman은 동일한 파일에서 여러 Worker를 인스턴스화하는 것을 지원하지 않습니다.
위의 예제는 Windows 버전의 Workerman에서 실행할 수 없습니다.
Windows 버전의 Workerman은 여러 Worker 인스턴스를 초기화할 때 다른 파일에 두어야 합니다. 아래와 같이 작성하십시오.
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');
};
// 모든 Worker 인스턴스를 실행합니다(여기서는 하나의 인스턴스만 있음)
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');
};
// 모든 Worker 인스턴스를 실행합니다(여기서는 하나의 인스턴스만 있음)
Worker::runAll();