Envia todas as chamadas

# Yar_Concurrent_Client::loop

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::loop — Envia todas as chamadas

### Descrição

public static function Yar_Concurrent_Client::loop(callable `$callback` = ?, callable `$error_callback` = ?): bool

Envia todas as chamadas RPC remotas registradas.

### Parâmetros

`callback`

  Se esta função de retorno estiver definida, o Yar a chamará depois que todas as chamadas tiverem sido enviadas e antes de qualquer retorno de resposta, com $callinfo NULL.

  Então, se o usuário não especificou a função de retorno ao registrar a chamada simultânea, esta função de retorno será usada para manipular a resposta; caso contrário, a função de retorno especificada durante o registro será usada.

`error_callback`

  Se esta função de retorno estiver definida, o Yar chamará esta função de retorno quando ocorrer um erro.

### Valor Retornado

### Exemplos

Exemplo #1 Exemplo de Yar_Concurrent_Client::loop()

    <?php
    function callback($retval, $callinfo) {
         if ($callinfo == NULL) {
            echo "Agora, todas as solicitações foram enviadas e nenhuma resposta está disponível\n";
         } else {
            echo "Esta é uma resposta de chamada remota, o nome do método é ", $callinfo["method"],
                 ", a sequência de chamada é " , $callinfo["sequence"] , "\n";
            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"));   // se a função de retorno não for especificada,
                                                                                   // a função de retorno no loop será usada
    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
                                                                                   // este servidor aceita empacotador json
    Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
                                                                                   // tempo limite personalizado

    Yar_Concurrent_Client::loop("callback", "error_callback"); // envia as solicitações,
                                                               // error_callback é opcional
    ?>

O exemplo acima produzirá algo semelhante a:

    Agora, todas as solicitações foram enviadas e nenhuma resposta está disponível
    Esta é uma resposta de chamada remota, o nome do método é some_method, a sequência de chamada é 4
    string(11) "some_method"
    Esta é uma resposta de chamada remota, o nome do método é some_method, a sequência de chamada é 1
    string(11) "some_method"
    Esta é uma resposta de chamada remota, o nome do método é some_method, a sequência de chamada é 2
    string(11) "some_method"
    Esta é uma resposta de chamada remota, o nome do método é some_method, a sequência de chamada é 3
    string(11) "some_method"

### Veja Também

- Yar_Concurrent_Client::call() - Registra uma chamada simultânea
- Yar_Concurrent_Client::reset() - Limpa todas as chamadas registradas
- Yar_Server::__construct() - Registra um servidor
- Yar_Server::handle() - Inicia o servidor RPC

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