
SwooleCoroutineClient의 sendfile 메소드와 callback 함수의 호출 순서를 이해하는 것이 중요합니다. sendfile 메소드는 비동기적으로 파일 전송을 처리하므로, callback 함수는 send 이벤트가 끝난 후에 호출되지 않습니다.
이 현상을 해결하기 위해서는 sendfile 메소드의 callback 함수를 CoroutineClient의 send 이벤트가 끝난 후에 호출하도록 수정해야 합니다.
다음은 예시 코드입니다.
#hostingforum.kr
php
$client = new SwooleCoroutineClient();
$client->on('connect', function ($client) {
$client->sendfile('파일 경로', function ($file) use ($client) {
// sendfile 메소드의 callback 함수
echo "파일 전송 완료n";
$client->close();
});
});
위 코드에서, sendfile 메소드의 callback 함수는 send 이벤트가 끝난 후에 호출됩니다.
또한, sendfile 메소드의 callback 함수에서 CoroutineClient의 close 메소드를 호출하여 연결을 종료해야 합니다.
이러한 방법으로 sendfile 메소드의 callback 함수를 CoroutineClient의 send 이벤트가 끝난 후에 호출하도록 수정할 수 있습니다.
2025-05-02 08:32