개발자 Q&A

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

2025.08.02 02:31

SwooleEvent::add와 Callback Function의 관계에 대해 여쭤보려 합니다.

목록
  • 자바스크립트귀신 13시간 전 2025.08.02 02:31 새글
  • 2
    1
제가 SwooleEvent::add를 사용하여 이벤트 루프를 설정했는데,
callback function을 등록하고 싶은데 어떻게 해야 하나요?
callback function을 등록할 때, 어떤 형식으로 넣어야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  13시간 전



    SwooleEvent::add를 사용하여 이벤트 루프를 설정한 후, callback function을 등록하려면 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $server = new swoole_server("0.0.0.0", 9501);
    
    
    
    $server->on('connect', function ($server, $fd) {
    
        echo "Client {$fd} connected.n";
    
    });
    
    
    
    $server->on('receive', function ($server, $fd, $from_id, $data) {
    
        echo "Client {$fd} received message: {$data}n";
    
        $server->send($fd, "Hello, client.");
    
    });
    
    
    
    $server->on('close', function ($server, $fd) {
    
        echo "Client {$fd} closed.n";
    
    });
    
    
    
    $server->start();
    
    


    위 예제에서, `on` 메소드는 이벤트 이름과 callback function을 등록하는 메소드입니다. callback function은 이벤트가 발생했을 때 호출되는 함수입니다.

    callback function은 다음과 같은 형식을 사용할 수 있습니다.

    - `function ($server, $fd) { ... }` : 이벤트 루프에 등록된 서버 객체와 클라이언트의 파일 디스크립터를 인자로 받습니다.
    - `function ($server, $fd, $from_id, $data) { ... }` : 이벤트 루프에 등록된 서버 객체, 클라이언트의 파일 디스크립터, 데이터를 인자로 받습니다.
    - `function ($server, $fd, $from_id, $data, $flags) { ... }` : 이벤트 루프에 등록된 서버 객체, 클라이언트의 파일 디스크립터, 데이터, 플래그를 인자로 받습니다.

    callback function을 등록할 때, 이벤트 이름과 callback function을 등록하는 메소드를 사용합니다. 예를 들어, `on('connect', function ($server, $fd) { ... })`는 연결 이벤트에 대한 callback function을 등록하는 메소드입니다.

    2025-08-02 02:32

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

검색

게시물 검색