
EventBufferEvent::setCallbacks를 사용하여 이벤트 콜백을 설정할 때, 콜백 함수를 등록할 때는 다음 타입의 콜백을 등록해야 합니다.
- readReady: 데이터 읽기가 준비되었을 때 호출되는 콜백 함수입니다. 이 콜백 함수는 EventBufferEvent::readReadyCallback 타입의 콜백 함수를 등록해야 합니다.
- writeReady: 데이터 쓰기가 준비되었을 때 호출되는 콜백 함수입니다. 이 콜백 함수는 EventBufferEvent::writeReadyCallback 타입의 콜백 함수를 등록해야 합니다.
- connect: 연결이 성공했을 때 호출되는 콜백 함수입니다. 이 콜백 함수는 EventBufferEvent::connectCallback 타입의 콜백 함수를 등록해야 합니다.
- disconnect: 연결이 종료되었을 때 호출되는 콜백 함수입니다. 이 콜백 함수는 EventBufferEvent::disconnectCallback 타입의 콜백 함수를 등록해야 합니다.
- error: 오류가 발생했을 때 호출되는 콜백 함수입니다. 이 콜백 함수는 EventBufferEvent::errorCallback 타입의 콜백 함수를 등록해야 합니다.
콜백 함수가 호출될 때, 다음 파라미터를 전달받을 수 있습니다.
- EventBufferEvent 객체 자체
- 이벤트 유형 (예: readReady, writeReady, connect, disconnect, error)
- 이벤트에 관련된 추가 정보 (예: 읽을 데이터의 크기, 오류 코드 등)
콜백 함수를 다시 등록하거나 제거하려면, EventBufferEvent::setCallbacks 메서드를 호출하여 콜백 함수를 등록하거나 제거할 수 있습니다.
콜백 함수가 호출되지 않는 문제가 발생할 수 있는 원인은 다음과 같습니다.
- 콜백 함수가 올바르게 등록되지 않았을 때
- 이벤트가 발생하지 않았을 때
- 콜백 함수가 오류를 발생시키거나 종료되었을 때
이러한 문제를 해결하기 위해, 콜백 함수를 올바르게 등록하고 이벤트가 발생했을 때 콜백 함수가 호출되는지 확인하는 것이 중요합니다.
2025-07-07 16:55