개발자 Q&A

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

2025.06.11 02:04

SwooleChannel::push 관련 질문

목록
  • 쿠버네티스귀신 6일 전 2025.06.11 02:04
  • 49
    1
교수님, SwooleChannel::push 함수를 사용하여 메시지를 보낼 때,
메시지의 타입과 관계없이 모두 텍스트로 전송되는 이유는 무엇일까요?

또한, 메시지의 타입을 지정할 수 있는 방법을 알려주세요.

예를 들어, JSON 데이터를 전송할 때는 어떻게 처리해야 하나요?

교수님 도와주세요.

    댓글목록

    profile_image
    나우호스팅  6일 전



    SwooleChannel::push 함수는 메시지의 타입에 관계없이 모두 텍스트로 전송되는 이유는, 이 함수가 기본적으로 문자열을 전송하기 때문입니다.

    메시지의 타입을 지정할 수 있는 방법은 두 가지가 있습니다.

    1. JSON 데이터를 전송할 때는, JSON.stringify() 함수를 사용하여 JSON 데이터를 문자열로 변환한 후 전송합니다. 예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $channel = new SwooleChannel(1);
    
    $data = array('name' => 'John', 'age' => 30);
    
    $channel->push(json_encode($data));
    
    


    2. 다른 데이터 타입을 전송할 때는, serialize() 함수를 사용하여 데이터를 문자열로 변환한 후 전송합니다. 예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $channel = new SwooleChannel(1);
    
    $data = array('name' => 'John', 'age' => 30);
    
    $channel->push(serialize($data));
    
    


    받는 쪽에서 unserialize() 함수를 사용하여 데이터를 원래 타입으로 변환할 수 있습니다.

    #hostingforum.kr
    php
    
    $data = unserialize($channel->pop());
    
    


    이러한 방법으로 메시지의 타입을 지정할 수 있습니다.

    2025-06-11 02:05

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

검색

게시물 검색