(PECL zmq >= 0.5.0)
ZMQSocket::__construct — 构造一个新的 ZMQSocket
$context,$type,$persistent_id = null,$on_new_socket = null构造一个 ZMQSocket 对象。 persistent_id 参数可用于分配持久套接字。持久套接字必须从持久上下文分配,并且在多个请求中保持连接状态。 persistent_id 参数可用于在多个请求中调用相同的套接字。 on_new_socket 仅在创建新的底层套接字结构时调用。
contextZMQContext 对象。
type套接字类型。请参阅 ZMQ::SOCKET_* 常量。
persistent_id如果指定了 persistent_id,则套接字将在多个请求中持久化。如果 context 不是持久的,则套接字将回退到非持久模式。
on_new_socket回调函数,在创建新的套接字结构时执行。如果底层持久连接被重用,则不会调用此函数。
在发生错误时抛出 ZMQSocketException。
示例 #1 一个 ZMQSocket() 示例
使用回调绑定/连接套接字
<?php
/*
套接字是持久的,因此此函数仅在
第一次请求脚本时调用。
*/
function on_new_socket_cb(ZMQSocket $socket, $persistent_id = null)
{
if ($persistent_id === 'server') {
$socket->bind("tcp://:12122");
} else {
$socket->connect("tcp://:12122");
}
}
/* 分配一个新的上下文 */
$context = new ZMQContext();
/* 创建一个新的套接字 */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');
$message = $socket->recv();
echo "Received message: {$message}\n";
?>