라이브러리
[PHP] EventBufferEvent::setTimeouts - 버퍼 이벤트에 대한 읽기 및 쓰기 시간 초과 설정
EventBufferEvent::setTimeouts
EventBufferEvent::setTimeouts는 EventBufferEvent 객체에 대한 setTimeouts 메소드를 제공하는 PHP 클래스입니다. 이 메소드는 EventBufferEvent 객체에 대한 타임아웃 설정을 허용하며, 타임아웃이 발생하면 이벤트가 발생합니다.
사용법
EventBufferEvent::setTimeouts 메소드는 두 개의 파라미터를 받습니다. 첫 번째 파라미터는 타임아웃 시간을 초 단위로 나타내는 정수 값입니다. 두 번째 파라미터는 타임아웃이 발생했을 때 호출할 콜백 함수입니다.
예제
다음은 EventBufferEvent::setTimeouts 메소드를 사용한 예제입니다.
#hostingforum.kr
php
<?php
use ReactEventLoopFactory;
use ReactEventLoopLoopInterface;
use ReactEventLoopTimerInterface;
$loop = Factory::create();
$event = $loop->createBufferEvent();
$event->setTimeouts(5, function () use ($event, $loop) {
echo "타임아웃이 발생했습니다.
";
$event->stop();
$loop->stop();
});
$loop->run();
?>
이 예제는 5초 후에 타임아웃이 발생하는 이벤트를 생성합니다. 타임아웃이 발생하면 "타임아웃이 발생했습니다."라는 메시지를 출력하고 이벤트를 중지합니다.
타임아웃 설정
EventBufferEvent::setTimeouts 메소드는 여러 타임아웃을 설정할 수 있습니다. 예를 들어, 다음 예제는 5초와 10초의 두 개의 타임아웃을 설정합니다.
#hostingforum.kr
php
<?php
use ReactEventLoopFactory;
use ReactEventLoopLoopInterface;
$loop = Factory::create();
$event = $loop->createBufferEvent();
$event->setTimeouts(5, function () use ($event, $loop) {
echo "5초 타임아웃이 발생했습니다.
";
$event->stop();
});
$event->setTimeouts(10, function () use ($event, $loop) {
echo "10초 타임아웃이 발생했습니다.
";
$event->stop();
$loop->stop();
});
$loop->run();
?>
이 예제는 5초와 10초의 두 개의 타임아웃을 설정합니다. 5초 타임아웃이 발생하면 "5초 타임아웃이 발생했습니다."라는 메시지를 출력하고 이벤트를 중지합니다. 10초 타임아웃이 발생하면 "10초 타임아웃이 발생했습니다."라는 메시지를 출력하고 이벤트를 중지하고 이벤트 루프를 중지합니다.
타임아웃 취소
EventBufferEvent::setTimeouts 메소드는 타임아웃을 취소할 수 있는 메소드를 제공하지 않습니다. 그러나, 타임아웃이 설정된 이벤트를 중지하면 타임아웃이 취소됩니다.
#hostingforum.kr
php
<?php
use ReactEventLoopFactory;
use ReactEventLoopLoopInterface;
$loop = Factory::create();
$event = $loop->createBufferEvent();
$event->setTimeouts(5, function () use ($event, $loop) {
echo "타임아웃이 발생했습니다.
";
$event->stop();
});
$loop->runUntil(function () use ($event) {
return !$event->isScheduled();
});
?>
이 예제는 5초 타임아웃이 설정된 이벤트를 중지합니다. 이벤트 루프는 이벤트가 중지될 때까지 실행됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.