(PECL yar >= 1.0.0)
Yar_Concurrent_Client::call — Регистрирует вызов удалённой процедуры
$uri,$method,$parameters = ?,$callback = ?,$error_callback = ?,$options = ?Метод регистрирует вызов удалённой процедуры. Вызов не отправляется в момент регистрации, а откладывается до вызова метода Yar_Concurrent_Client::loop().
uriАбсолютный URI RPC-сервера, с указанием схемы: http, tcp.
methodНазвание службы — удалённого метода.
parametersАргументы, которые вызов передаст в параметры удалённого метода.
callbackCallback-функция, которая вызывается после отработки удалённого запроса.
error_callbackCallback-функция, которую модуль Yar вызовет, если возникнет ошибка.
optionsМассив опций. См. список констант.
Метод возвращает уникальный идентификатор вызова.
Пример #1 Пример регистрации вызова методом 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");
// Метод loop() вызовет свою функцию обратного вызова,
// если callback-функцию для конкретного вызова не указали
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"));
// Сервер принимает JSON-упаковщик
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
// Индивидуальное время ожидания вызова
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT => 1));
// Запросы не отправляются сразу, а только регистрируютсяВывод приведённого примера будет похож на: