(PECL zmq >= 0.5.0)
ZMQSocket::__construct — Constrói um novo ZMQSocket
$context
, int $type
[, string $persistent_id
= null
[, callback $on_new_socket
= null
]] )
Constrói um objeto ZMQSocket. O parâmetro persistent_id
pode ser usado para alocar um socket
persistente. Um socket persistente deve ser alocado a partir de um contexto persistente e permanece conectado ao longo de várias requisições.
O parâmetro persistent_id
pode ser usado para chamar novamente o mesmo socket ao longo de várias requisições. O
parâmetro on_new_socket
é chamado apenas quando uma nova instância de socket for criada.
context
Um objeto ZMQContext.
type
O tipo do socket. Consulte as constantes ZMQ::SOCKET_*
.
persistent_id
Se o parâmetro persistent_id
for especificado, o socket será persistente ao longo de várias requisições.
Se o parâmetro context
não for persistente, o socket volta para o modo não persistente.
on_new_socket
Uma finção de retorno que é executada quando uma nova instância de socket é criada. Essa função não é invocada se a conexão em uso for persistente e estiver sendo reusada.
Exemplo #1 Um exemplo de ZMQSocket()
Usando uma função de retorno para associar/conectar o socket
<?php
/*
O socket é persistente e por isso essa função é chamada apanas na
primeira requisição ao script.
*/
function novo_socket_cb(ZMQSocket $socket, $id_persistente = null)
{
if ($id_persistente === 'servidor') {
$socket->bind("tcp://localhost:12122");
} else {
$socket->connect("tcp://localhost:12122");
}
}
/* Aloca um novo contexto */
$contexto = new ZMQContext();
/* Cria um novo socket */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'servidor', 'novo_socket_cb');
$mensagem = $socket->recv();
echo "Mensagem recebida: {$mensagem}\n";
?>
Assinatura da função de retorno
Nota:
function novo_socket_cb(ZMQSocket $socket, string $persistent_id = null);
Lança uma exceção ZMQSocketException caso haja erro.