<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Register a concurrent call</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="class.yar-concurrent-client.html">Yar_Concurrent_Client</a></div> <div class="next" style="text-align: right; float: right;"><a href="yar-concurrent-client.loop.html">Yar_Concurrent_Client::loop</a></div> <div class="up"><a href="class.yar-concurrent-client.html">Yar_Concurrent_Client</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="yar-concurrent-client.call" class="refentry"> <div class="refnamediv"> <h1 class="refname">Yar_Concurrent_Client::call</h1> <p class="verinfo">(PECL yar >= 1.0.0)</p><p class="refpurpose"><span class="refname">Yar_Concurrent_Client::call</span> — <span class="dc-title">Register a concurrent call</span></p> </div> <div class="refsect1 description" id="refsect1-yar-concurrent-client.call-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="modifier">public</span> <span class="modifier">static</span> <span class="type">int</span> <span class="methodname"><strong>Yar_Concurrent_Client::call</strong></span> ( <span class="methodparam"><span class="type">string</span> <code class="parameter">$uri</code></span> , <span class="methodparam"><span class="type">string</span> <code class="parameter">$method</code></span> , <span class="methodparam"><span class="type">array</span> <code class="parameter">$parameters</code></span> [, <span class="methodparam"><span class="type"><a href="language.types.callable.html" class="type callable">callable</a></span> <code class="parameter">$callback</code></span> ] )</div> <p class="para rdfs-comment"> Register a RPC call, but won't sent it immediately, it will be send while further call to <span class="methodname"><a href="yar-concurrent-client.loop.html" class="methodname">Yar_Concurrent_Client::loop()</a></span> </p> </div> <div class="refsect1 parameters" id="refsect1-yar-concurrent-client.call-parameters"> <h3 class="title">Parameters</h3> <dl> <dt> <span class="term"><em><code class="parameter">uri</code></em></span> <dd> <p class="para"> The RPC server URI(http, tcp) </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">method</code></em></span> <dd> <p class="para"> Service name(aka the method name) </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">parameters</code></em></span> <dd> <p class="para"> Parameters </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">callback</code></em></span> <dd> <p class="para"> A function callback, which will be called while the response return. </p> </dd> </dt> </dl> </div> <div class="refsect1 returnvalues" id="refsect1-yar-concurrent-client.call-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> An unique id, can be used to identified which call it is. </p> </div> <div class="refsect1 examples" id="refsect1-yar-concurrent-client.call-examples"> <h3 class="title">Examples</h3> <div class="example" id="example-5343"> <p><strong>Example #1 <span class="function"><strong>Yar_Concurrent_Client::call()</strong></span> example</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">callback</span><span style="color: #007700">(</span><span style="color: #0000BB">$retval</span><span style="color: #007700">, </span><span style="color: #0000BB">$callinfo</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$retval</span><span style="color: #007700">);<br />}<br /><br />function </span><span style="color: #0000BB">error_callback</span><span style="color: #007700">(</span><span style="color: #0000BB">$type</span><span style="color: #007700">, </span><span style="color: #0000BB">$error</span><span style="color: #007700">, </span><span style="color: #0000BB">$callinfo</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">error_log</span><span style="color: #007700">(</span><span style="color: #0000BB">$error</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">Yar_Concurrent_Client</span><span style="color: #007700">::</span><span style="color: #0000BB">call</span><span style="color: #007700">(</span><span style="color: #DD0000">"http://host/api/"</span><span style="color: #007700">, </span><span style="color: #DD0000">"some_method"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">"parameters"</span><span style="color: #007700">), </span><span style="color: #DD0000">"callback"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">Yar_Concurrent_Client</span><span style="color: #007700">::</span><span style="color: #0000BB">call</span><span style="color: #007700">(</span><span style="color: #DD0000">"http://host/api/"</span><span style="color: #007700">, </span><span style="color: #DD0000">"some_method"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">"parameters"</span><span style="color: #007700">)); </span><span style="color: #FF8000">// if the callback is not specificed, <br /> // callback in loop will be used<br /></span><span style="color: #0000BB">Yar_Concurrent_Client</span><span style="color: #007700">::</span><span style="color: #0000BB">call</span><span style="color: #007700">(</span><span style="color: #DD0000">"http://host/api/"</span><span style="color: #007700">, </span><span style="color: #DD0000">"some_method"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">"parameters"</span><span style="color: #007700">), </span><span style="color: #DD0000">"callback"</span><span style="color: #007700">, </span><span style="color: #0000BB">NULL</span><span style="color: #007700">, array(</span><span style="color: #0000BB">YAR_OPT_PACKAGER </span><span style="color: #007700">=> </span><span style="color: #DD0000">"json"</span><span style="color: #007700">));<br /> </span><span style="color: #FF8000">//this server accept json packager<br /></span><span style="color: #0000BB">Yar_Concurrent_Client</span><span style="color: #007700">::</span><span style="color: #0000BB">call</span><span style="color: #007700">(</span><span style="color: #DD0000">"http://host/api/"</span><span style="color: #007700">, </span><span style="color: #DD0000">"some_method"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">"parameters"</span><span style="color: #007700">), </span><span style="color: #DD0000">"callback"</span><span style="color: #007700">, </span><span style="color: #0000BB">NULL</span><span style="color: #007700">, array(</span><span style="color: #0000BB">YAR_OPT_TIMEOUT</span><span style="color: #007700">=></span><span style="color: #0000BB">1</span><span style="color: #007700">));<br /> </span><span style="color: #FF8000">//custom timeout <br /><br />//The requests are not sent yet<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output something similar to:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> </pre></div> </div> </div> </div> <div class="refsect1 seealso" id="refsect1-yar-concurrent-client.call-seealso"> <h3 class="title">See Also</h3> <ul class="simplelist"> <li class="member"> <span class="methodname"><a href="yar-concurrent-client.loop.html" class="methodname" rel="rdfs-seeAlso">Yar_Concurrent_Client::loop()</a> - Send all calls</span></li> <li class="member"> <span class="methodname"><a href="yar-server.construct.html" class="methodname" rel="rdfs-seeAlso">Yar_Server::__construct()</a> - Register a server</span></li> <li class="member"> <span class="methodname"><a href="yar-server.handle.html" class="methodname" rel="rdfs-seeAlso">Yar_Server::handle()</a> - Start RPC Server</span></li> </ul> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="class.yar-concurrent-client.html">Yar_Concurrent_Client</a></div> <div class="next" style="text-align: right; float: right;"><a href="yar-concurrent-client.loop.html">Yar_Concurrent_Client::loop</a></div> <div class="up"><a href="class.yar-concurrent-client.html">Yar_Concurrent_Client</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>