Регистрирует вызов удалённой процедуры

# Yar_Concurrent_Client::call

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::call — Регистрирует вызов удалённой процедуры

### Описание

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

Метод регистрирует вызов удалённой процедуры. Вызов не отправляется в момент регистрации, а откладывается до вызова метода Yar_Concurrent_Client::loop().

### Список параметров

`uri`

  Абсолютный URI RPC-сервера, с указанием схемы: http, tcp.

`method`

  Название службы — удалённого метода.

`parameters`

  Аргументы, которые вызов передаст в параметры удалённого метода.

`callback`

  Callback-функция, которая вызывается после отработки удалённого запроса.

`error_callback`
  Callback-функция, которую модуль 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));

    // Запросы не отправляются сразу, а только регистрируются

Вывод приведённого примера будет похож на:

### Смотрите также

- Yar_Concurrent_Client::loop() - Запуск всех зарегистрированный вызовов
- Yar_Concurrent_Client::reset() - Очистить все зарегистрированные вызовы
- Yar_Server::__construct() - Конструктор Yar_Server
- Yar_Server::handle() - Запустить сервер RPC

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open