Yar Yar_Concurrent_Client::call
(PECL yar >= 1.0.0)
Yar_Concurrent_Client::call — Register a concurrent 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
- RPC 서버 URI(http, tcp)
method
- 서비스 이름(메소드 이름이라고도 함)
parameters
- parameters
callback
- 응답이 반환되는 동안 호출되는 함수 콜백입니다.
반환 값
고유 ID는 호출을 식별하는 데 사용할 수 있습니다.
Examples
예제 #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")); // if the callback is not specificed,
// callback in loop will be used
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
//this server accept json packager
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
//custom timeout
//The requests are not sent yet
?>
위의 예는 다음과 유사한 결과를 출력합니다.
기타
- Yar_Concurrent_Client::loop() - Send all calls
- Yar_Concurrent_Client::reset() - Clean all registered calls
- Yar_Server::__construct() - Register a server
- Yar_Server::handle() - Start RPC Server