Construir un nuevo ZMQSocket

# ZMQSocket::__construct

(PECL zmq >= 0.5.0)

ZMQSocket::__construct — Construir un nuevo ZMQSocket

### Descripción

public function ZMQSocket::__construct(
ZMQContext `$context`,
int `$type`,
string `$persistent_id` = `null`,
callable `$on_new_socket` = `null`
)

Construye un objeto ZMQSocket. Se puede utilizar el parámetro `persistent_id` para asignar un socket persistente. Un socket persistente tiene que ser asignado desde un contexto persistente, por lo que permanece conectado durante múltiples peticiones. Se puede emplear el parámetro `persistent_id` para recordar el mismo socket durante múltiples peticiones. `on_new_socket` es llamado solamente cuando se crea un nueva estructura de socket subyacente.

### Parámetros

`context`

  Un objeto ZMQContext.

`type`

  El tipo de socket. Véanse las constantes `ZMQ::SOCKET_*`.

`persistent_id`

  Si se especifica `persistent_id`, el socket será persistente durante múltiples peticiones. Si `context` no es persistente, el socket recurrirá al modo no persistente.

`on_new_socket`

  Función de retrollamada que es ejecutada cuando se crea una nueva estrucutra de socket. Esta función no es invocada si la conexión persistente subyacente es reutilizada.

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

### Errores/Excepciones

Lanza una ZMQSocketException en caso de error.

### Ejemplos

Ejemplo #1 Un ejemplo de ZMQSocket()

Utilizar una callback para bind/connect del socket

    <?php

    /*
      El socket es persistente, por lo que esta función es llamada solamente en la
      primera petición del 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");
        }
    }

    /* Asignar un nuevo contexto */
    $context = new ZMQContext();

    /* Crear un nuevo socket */
    $socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');

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

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