0MQ messaging ZMQSocket::__construct
(PECL zmq >= 0.5.0)
ZMQSocket::__construct — 새로운 ZMQSocket 생성
설명
public ZMQSocket::__construct( ZMQContext $context, int $type, string $persistent_id = null, callable $on_new_socket = null )
ZMQSocket 객체를 생성합니다. persistent_id
매개변수를 사용하여 영구 소켓을 할당할 수 있습니다. 영구 소켓은 영구 컨텍스트에서 할당되어야 하며 여러 요청을 통해 연결된 상태를 유지합니다.
persistent_id
매개변수는 여러 요청에서 동일한 소켓을 호출하는 데 사용할 수 있습니다. on_new_socket
은 새로운 기본 소켓 구조가 생성될 때만 호출됩니다.
매개변수
context
- ZMQContext object.
type
- 소켓 유형입니다.
ZMQ::SOCKET_*
상수를 참조하십시오. persistent_id
persistent_id
가 지정되면 소켓은 여러 요청에 대해 지속됩니다.context
가 지속되지 않으면 소켓은 비영구 모드로 폴백합니다.on_new_socket
- 새로운 소켓 구조가 생성될 때 실행되는 콜백 함수. 기본 영구 연결이 재사용되는 경우 이 함수가 호출되지 않습니다.
callback(ZMQSocket
$socket
, string$persistent_id
=null
)
오류/예외
오류가 발생하면 ZMQSocketException을 던집니다.
Examples
예제 #1 ZMQSocket() 예제
바인드/연결 소켓 콜백 사용
<?php
/*
The socket is persistent so this function is called only on the
first request to the script.
*/
function on_new_socket_cb(ZMQSocket $socket, $persistent_id = null)
{
if ($persistent_id === 'server') {
$socket->bind("tcp://localhost:12122");
} else {
$socket->connect("tcp://localhost:12122");
}
}
/* Allocate a new context */
$context = new ZMQContext();
/* Create a new socket */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');
$message = $socket->recv();
echo "Received message: {$message}\n";
?>