Yar_Concurrent_Client::call
(PECL yar >= 1.0.0)
Yar_Concurrent_Client::call — Зарегистрировать конкурентный вызов
Описание
public static Yar_Concurrent_Client::call
( string
$uri
, string $method
, array $parameters
= ?
, callable $callback
= ?
, callable $error_callback
= ?
, array $options
= ?
) : intРегистрирует RPC-вызов, но не посылает его немедленно, а откладывает до моменты вызова Yar_Concurrent_Client::loop()
Список параметров
-
uri
-
URI (http, tcp) сервера RPC
-
method
-
Имя сервиса (имя метода)
-
parameters
-
Параметры
-
callback
-
Callback-функция, которая будет вызвана после отработки удаленного запроса.
Возвращаемые значения
Уникальный идентификатор.
Примеры
Пример #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");
//если функция обратного вызова не задана, то будет использована определенная в цикле вызовов
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));
//запросы все еще не запущены
?>
Результатом выполнения данного примера будет что-то подобное:
Смотрите также
- Yar_Concurrent_Client::loop() - Запуск всех харегистрированный вызовов
- Yar_Concurrent_Client::reset() - Очистить все зарегистрированные вызовы
- Yar_Server::__construct() - Конструктор Yar_Server
- Yar_Server::handle() - Запустить сервер RPC