©
This document uses PHP Chinese website manual Release
(PECL yar >= 1.0.0)
Yar_Concurrent_Client::call — 注册一个并行的服务调用
$uri
, string $method
, array $parameters
[, callable $callback
] )注册一个并行的(异步的)远程服务调用, 不过这个调用请求不会被立即发出, 而是会在接下来调用 Yar_Concurrent_Client::loop() 的时候才真正的发送出去.
uri
服务的URL.
method
调用的服务名字(也就是服务方法名).
parameters
调用的参数.
callback
回掉函数, 在远程服务的返回到达的时候被Yar调用, 从而可以处理返回内容.
返回一个整数值(sequence), 可以用来区分到底是那个调用的返回.
Example #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
// 这个时候请求都还没有发出
?>
以上例程的输出类似于: