# Yar_Concurrent_Client::call

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::call — Registrar una llamada concurrente

### Descripción

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

Registra una llamada RPC, aunque no la envía inmediatamente. Se enviará al llamar a Yar_Concurrent_Client::loop()

### Parámetros

`uri`

  El URI del servidor de RPC (http, tcp)

`method`

  El nombre del servicio (es decir, el nombre del método)

`parameters`

  Parámetros

`callback`

  Una retrollamada a una función, la cual será invocada mientras se devuelve la respuesta.

### Valores devueltos

Un ID único que se puede utilizar para identificar la llamada que es.

### Ejemplos

Ejemplo #1 Ejemplo de Yar_Concurrent_Client::call()

`<?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")); // si no se especifica la retrollamada,
// se usará la retrollamada en bucle
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
//este servidor acepta empaquetadores json
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
//tiempo de espera personalizado
//Las peticiones aún no se han enviado
?>`

El resultado del ejemplo sería algo similar a:

### Ver también

- Yar_Concurrent_Client::loop() - Enviar todas las llamadas
- Yar_Concurrent_Client::reset() - Limpiar todas las llamadas registradas
- Yar_Server::__construct() - Registrar un servidor
- Yar_Server::handle() - Iniciar un servidor RPC