Конструктор класса ZMQSocket

# ZMQSocket::__construct

(PECL zmq >= 0.5.0)

ZMQSocket::__construct — Конструктор класса ZMQSocket

### Описание

public function 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-функция, которая будет вызвана при создании нового сокета. Эта функция не вызывается в случае повторного использования постоянного соединения.

  function 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 "Получено сообщение: {$message}\n";
    ?>

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open