ZMQSocket::__construct
(PECL zmq >= 0.5.0)
ZMQSocket::__construct — Конструктор класса ZMQSocket
Описание
$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-функция, которая будет вызвана при создании нового сокета. Эта функция не вызывается в случае повторного использования постоянного соединения.
Примеры
Пример #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 "Получено сообщение: {$message}\n";
?>
Callback-функция должна быть описана так:
Замечание:
function on_new_socket_cb(ZMQSocket $socket, string $persistent_id = null);
Возвращаемые значения
В случае ошибки выбрасывает исключение ZMQSocketException.