Thanks to PHP’s flexibility, we could develop a cross-platform solution, without having to rely on a RPC multiplexer. We chose a select()ing method provided by CURL’s “multi” package, by extending the SoapClient class and implementing our own __doRequest.
You can download our helper script, and use it as
// Just demonstrating that it works with multiple functions, to multiple servers $client1 = new SoapClientAsync('some-systems-wsdl', $options); $client2 = new SoapClientAsync('another-systems-wsdl', $options); $client1->someFunction($arguments); $client1->anotherFunction($arguments); $client2->anotherFunction($arguments); soap_dispatch(); $result1 = $client1->someFunction($arguments); $result2 = $client1->anotherFunction($arguments); $result3 = $client2->anotherFunction($arguments);
We hope that our customers appreciate the speed boost that it gives their anti-spam system’s end-user web interfaces.