Files
doc-fr/reference/zmq/zmqsocket/construct.xml
2021-05-25 18:58:36 +01:00

150 lines
4.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 3c31131ae899b6bea6dc1d46475160afe0995773 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<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>Construit un nouveau 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>
Construit un objet ZMQSocket. Le paramètre <parameter>persistent_id</parameter>
peut être utilisé pour allouer un socket persistent. Un socket
persistent doit être alloué depuis un contexte persistent,
et il restera connecté pendant plusieurs requêtes. Le paramètre
<parameter>persistent_id</parameter> peut être utilisé
pour ré-appeler le même socket lors des prochaines requêtes.
<parameter>on_new_socket</parameter> est appelé uniquement lorsqu'une
nouvelle structure sous-jacente de socket est créé.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>context</parameter></term>
<listitem>
<para>
Objet ZMQContext.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>type</parameter></term>
<listitem>
<para>
Le type de socket. Voir les constantes <constant>ZMQ::SOCKET_*</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>persistent_id</parameter></term>
<listitem>
<para>
Si <parameter>persistent_id</parameter> est spécifié, le socket sera
persistent pendant plusieurs requêtes. Si <parameter>context</parameter>
n'est pas persistent, le socket passera automatiquement en mode non-persistent.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>on_new_socket</parameter></term>
<listitem>
<para>
Fonction de rappel, qui sera exécutée lorsqu'une nouvelle structure de socket
sera créée. Cette fonction ne sera pas appelée si la connexion
persistente est ré-appelée.
</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>
Lance une <classname>ZMQSocketException</classname> en cas d'erreur.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>ZMQSocket</function></title>
<para>
Utilisation de la fonction de rappel sur le socket lié/connecté
</para>
<programlisting role="php">
<![CDATA[
<?php
/*
Le socket est persistent, aussi, cette fonction est appelée uniquement
lors de la première requête du 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");
}
}
/* Alloue un nouveau contexte */
$context = new ZMQContext();
/* Crée un nouveau socket */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');
$message = $socket->recv();
echo "Received message: {$message}\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
-->