connections

설명:

array Worker::$connections

형태는

array(id=>connection, id=>connection, ...)

이 속성에는 현재 프로세스의 모든 클라이언트 연결 객체가 저장되어 있으며, 여기서 id는 connection의 id 번호입니다. 자세한 내용은 매뉴얼의 TcpConnection의 id 속성를 참조하세요.

$connections는 브로드캐스트 시 또는 연결 id에 따라 연결 객체를 얻는 데 매우 유용합니다.

connection의 번호가 $id인 경우, $worker->connections[$id]를 통해 해당 connection 객체를 쉽게 얻을 수 있으며, 이를 통해 해당 소켓 연결을 조작할 수 있습니다. 예를 들어, $worker->connections[$id]->send('...')를 통해 데이터를 전송할 수 있습니다.

주의: 연결이 닫히면(onClose가 발생하면) 해당 connection$connections 배열에서 삭제됩니다.

주의: 개발자는 이 속성에 대해 수정 작업을 하지 마세요. 그렇지 않으면 예측할 수 없는 상황이 발생할 수 있습니다.

예제

use Workerman\Worker;
use Workerman\Timer;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker('text://0.0.0.0:2020');
// 프로세스 시작 시 모든 클라이언트 연결에 데이터를 정기적으로 전송하는 타이머 설정
$worker->onWorkerStart = function($worker)
{
    // 10초마다
    Timer::add(10, function()use($worker)
    {
        // 현재 프로세스의 모든 클라이언트 연결을 순회하여 현재 서버의 시간을 전송
        foreach($worker->connections as $connection)
        {
            $connection->send(time());
        }
    });
};
// worker 실행
Worker::runAll();