
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