weibocom / motan-php

83 stars 30 forks source link

add support for each Request can sets it's serialization type of MClient. #37

Closed snail007 closed 3 years ago

snail007 commented 3 years ago

Example of MClient->doMultiCall():

$app_name = 'phpt-test-MClient';
$group = "bj";
$service = "com.mycompany.motan.DemoServer";
$mcx = new \Motan\MClient($app_name);
$req1 = new \Motan\Request($service, 'Hello', "motan-php-client-req1");
$req2 = new \Motan\Request($service, 'Hello', "motan-php-client-req2");
$req3 = new \Motan\Request($service, 'Hello', "motan-php-client-req3");
$req1->setGroup($group);
$req2->setGroup($group);
$req3->setGroup($group);
$req1->setSerialization("breeze");
$req2->setSerialization("simple");
$req3->setSerialization("breeze");

$multi_res = $mcx->doMultiCall([
    $req1,
    $req2,
    $req3
]);

foreach ([
             $req1,
             $req2,
             $req3,
         ] as $k => $req) {
    $e = $multi_res->getException($req);
    if (!empty($e)) {
        var_dump("req" . ($k + 1) . " error " . $e);
    } else {
        var_dump($multi_res->getRs($req));
    }
}

Example of Client->multiCal():

$url_str = 'motan2://127.0.0.1:8001/com.mycompany.motan.DemoServer?group=bj&serialize=breeze';
$cx = new \Motan\Client();
$multi_res0=$cx->multiCall([
    new \Motan\URL($url_str),
    new \Motan\URL($url_str),
    new \Motan\URL($url_str),
],"Hello","client-multiple-call");
var_dump($multi_res0);