Files
archived-doc-pt-br/reference/zmq/zmqsocket/construct.xml
2024-11-10 16:19:52 -03:00

143 lines
4.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 976425d4f6eec32448be3cc22ec063015921b753 Maintainer: ae Status: ready --><!-- CREDITS: ae,leonardolara -->
<refentry xml:id="zmqsocket.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>ZMQSocket::__construct</refname>
<refpurpose>Constrói um novo ZMQSocket</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <methodname>ZMQSocket::__construct</methodname>
<methodparam><type>ZMQContext</type><parameter>context</parameter></methodparam>
<methodparam><type>int</type><parameter>type</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>persistent_id</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>callable</type><parameter>on_new_socket</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Constrói um objeto ZMQSocket. O parâmetro <parameter>persistent_id</parameter> 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 <parameter>persistent_id</parameter> pode ser usado para chamar novamente o mesmo socket ao longo de várias requisições. O
parâmetro <parameter>on_new_socket</parameter> é chamado apenas quando uma nova instância de socket for criada.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>context</parameter></term>
<listitem>
<para>
Um objeto ZMQContext.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>type</parameter></term>
<listitem>
<para>
O tipo do socket. Consulte as constantes <constant>ZMQ::SOCKET_<replaceable>*</replaceable></constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>persistent_id</parameter></term>
<listitem>
<para>
Se o parâmetro <parameter>persistent_id</parameter> for especificado, o socket será persistente ao longo de várias requisições.
Se o parâmetro <parameter>context</parameter> não for persistente, o socket volta para o modo não persistente.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>on_new_socket</parameter></term>
<listitem>
<para>
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.
</para>
<methodsynopsis>
<methodname><replaceable>callback</replaceable></methodname>
<methodparam><type>ZMQSocket</type><parameter>socket</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>persistent_id</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Lança um <classname>ZMQSocketException</classname> em erros.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemplo de <function>ZMQSocket</function></title>
<para>
Utilizando um callback para conectar associar um socket
</para>
<programlisting role="php">
<![CDATA[
<?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";
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->