개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.16 14:19

SwooleServer::on 이벤트 리스너에 대한 질문

목록
  • 버전컨트롤러 14일 전 2025.05.16 14:19
  • 44
    1
제가 현재 SwooleServer::on 이벤트 리스너를 사용 중인데,
서버 이벤트에 대한 이벤트 리스너를 등록하는 방식에 대해 궁금합니다.

SwooleServer::on 이벤트 리스너를 사용하여 서버 이벤트를 처리할 때,
어떤 이벤트를 등록해야 하는지, 이벤트 이름의 형식은 무엇인지,
또한 이벤트 리스너 함수의 매개변수에 대해 알려주세요.

예를 들어, 서버가 종료될 때 어떤 이벤트를 등록해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  14일 전



    SwooleServer::on 이벤트 리스너를 사용하여 서버 이벤트를 처리할 때, 다음 이벤트를 등록할 수 있습니다.

    - start: 서버가 시작될 때
    - managerStart: 스레드 매니저가 시작될 때
    - workerStart: 워커 스레드가 시작될 때
    - workerStop: 워커 스레드가 종료될 때
    - shutdown: 서버가 종료될 때
    - pipeMessage: 파이프 통신을 통해 보낸 메시지를 처리할 때
    - connect: 클라이언트가 서버에 연결될 때
    - receive: 클라이언트로부터 데이터를 받을 때
    - close: 클라이언트가 서버와 연결을 끊을 때
    - task: 태스크 큐에 작업이 추가될 때
    - finish: 태스크 큐에 작업이 완료될 때
    - timer: 타이머가 발생할 때
    - pipeError: 파이프 통신 중 오류가 발생할 때

    이벤트 이름은 camelCase 형식으로 작성합니다. 예를 들어, 서버가 종료될 때는 shutdown 이벤트를 등록합니다.

    이벤트 리스너 함수의 매개변수는 다음과 같습니다.

    - $server: SwooleServer 객체
    - $fd: 클라이언트의 파일 디스크립터 (connect, receive, close 이벤트에만 해당)
    - $fromId: 태스크 큐에 작업이 추가된 아이디 (task, finish 이벤트에만 해당)
    - $timerId: 타이머 아이디 (timer 이벤트에만 해당)
    - $data: 이벤트에 대한 데이터 (pipeMessage, task, finish 이벤트에만 해당)
    - $workerId: 워커 스레드 아이디 (workerStart, workerStop 이벤트에만 해당)

    예를 들어, 서버가 종료될 때는 shutdown 이벤트를 등록하여 shutdown 이벤트 리스너 함수를 호출할 수 있습니다.

    #hostingforum.kr
    php
    
    $server->on('shutdown', function ($server) {
    
        echo "서버가 종료됩니다.n";
    
    });
    
    

    2025-05-16 14:20

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 23,841건 / 55 페이지

검색

게시물 검색