Register a concurrent call

- « Yar_Concurrent_Client

- Yar_Concurrent_Client::loop »

- PHP Manual
- Yar_Concurrent_Client
- Register a concurrent call

# Yar_Concurrent_Client::call

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::call — Register a concurrent call

### Description

public static Yar_Concurrent_Client::call(
string `$uri`,
string `$method`,
array `$parameters` = ?,
callable `$callback` = ?,
callable `$error_callback` = ?,
array `$options` = ?
): int

Register a RPC call, but won't sent it immediately, it will be send while further call to Yar_Concurrent_Client::loop()

### Parameters

`uri`

  The RPC server URI(http, tcp)

`method`

  Service name(aka the method name)

`parameters`

  Parameters

`callback`

  A function callback, which will be called while the response return.

### Return Values

An unique id, can be used to identified which call it is.

### Examples

Example #1 Yar_Concurrent_Client::call() example

    <?php
    function callback($retval, $callinfo) {
         var_dump($retval);
    }

    function error_callback($type, $error, $callinfo) {
        error_log($error);
    }

    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback");
    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"));   // if the callback is not specificed,
                                                                                   // callback in loop will be used
    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
                                                                                   //this server accept json packager
    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
                                                                                   //custom timeout

    //The requests are not sent yet
    ?>

The above example will output something similar to:

### See Also

- Yar_Concurrent_Client::loop() - Send all calls
- Yar_Concurrent_Client::reset() - Clean all registered calls
- Yar_Server::__construct() - Register a server
- Yar_Server::handle() - Start RPC Server