PHP 8.4.1 Released!

ZMQSocket::__construct

(PECL zmq >= 0.5.0)

ZMQSocket::__constructConstruir un nuevo ZMQSocket

Descripción

public 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.

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 the bind/connect 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";
?>

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top