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 对象。

type

套接字类型。参见 ZMQ::SOCKET_* 常量。

persistent_id

如果指定了 persistent_id,则套接字将持久存在于多个请求中。如果 context 不是持久的,则套接字会回退到非持久模式。

on_new_socket

回调函数,在创建新的套接字结构时执行。如果重用底层持久连接,则不会调用此函数。

callback(ZMQSocket $socket, string $persistent_id = null)

错误/异常

在错误时抛出 ZMQSocketException

示例

示例 #1 一个 ZMQSocket() 示例

使用回调绑定/连接套接字

<?php

/*
套接字是持久的,因此此函数仅在对脚本的第一个请求时调用。
*/
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");
}
}

/* 分配一个新的上下文 */
$context = new ZMQContext();

/* 创建一个新的套接字 */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');

$message = $socket->recv();
echo
"Received message: {$message}\n";
?>

添加注释

用户贡献注释

此页面没有用户贡献注释。
To Top