개발자 Q&A

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

2025.04.19 04:15

SwooleServer::confirm 관련 질문

목록
  • CI/CD장인 3일 전 2025.04.19 04:15
  • 9
    1
제가 현재 SwooleServer::confirm 메소드를 사용하여 클라이언트의 동의를 받기 위해 사용중입니다.
하지만, 이 메소드는 동의를 받은 후에 클라이언트와 서버가 통신을 하기 위해서는 다시 connect를 해야하는 것 같습니다.
이러한 방식은 불편하다고 생각되며, 동의를 받은 후에 바로 통신을 하기 위한 방법이 없는지 궁금합니다.

혹시, SwooleServer::confirm 메소드의 동작에 대한 이해가 부족한 것인지, 아니면 실질적인 문제인지는 모르겠습니다만,
해당 메소드를 사용할 때, 클라이언트와 서버가 통신을 하기 위해 다시 connect를 해야하는 이유를 알고 싶습니다.

    댓글목록

    profile_image
    나우호스팅  3일 전



    SwooleServer::confirm 메소드는 클라이언트의 동의를 받기 위한 메소드입니다. 동의를 받은 후, 클라이언트와 서버가 통신을 하기 위해 다시 connect를 해야하는 이유는 다음과 같습니다.

    - SwooleServer::confirm 메소드는 클라이언트의 동의를 받기 위한 메소드이기 때문에, 동의를 받은 후에 클라이언트와 서버가 통신을 하기 위해서는 다시 connect를 해야합니다.
    - connect 메소드는 클라이언트와 서버 간의 연결을 초기화하는 메소드입니다. 동의를 받은 후에 connect를 호출하지 않으면, 클라이언트와 서버 간의 연결이 초기화되지 않습니다.
    - 따라서, 동의를 받은 후에 바로 통신을 하기 위해서는 다시 connect를 호출해야합니다.

    다음은 예제를 통해 설명하겠습니다.

    #hostingforum.kr
    php
    
    use SwooleHttpServer;
    
    
    
    $server = new Server('127.0.0.1', 9501);
    
    
    
    $server->on('connect', function ($server, $fd) {
    
        $server->push($fd, '동의를 받으시겠습니까?');
    
    });
    
    
    
    $server->on('receive', function ($server, $fd, $fromId, $data) {
    
        if ($data == 'yes') {
    
            $server->push($fd, '동의가 승인되었습니다.');
    
            $server->connect($fd); // connect 메소드를 호출합니다.
    
        } else {
    
            $server->push($fd, '동의가 거부되었습니다.');
    
        }
    
    });
    
    
    
    $server->on('close', function ($server, $fd) {
    
        $server->disconnect($fd); // disconnect 메소드를 호출합니다.
    
    });
    
    
    
    $server->start();
    
    


    위 예제에서, 클라이언트가 동의를 받은 후에 connect 메소드를 호출하여 클라이언트와 서버 간의 연결을 초기화합니다.

    2025-04-19 04:16

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

검색

게시물 검색