Exemplo n.º 1
0
/**
* @param ZMQContext $ctx
* @param string $endpoint
* @param string $request
*/
function try_request($ctx, $endpoint, $request)
{
    global $request_timeout;
    printf("I: Trying echo service at %s...\n", $endpoint);
    $client = $ctx->getSocket(ZMQ::SOCKET_REQ);
    $client->connect($endpoint);
    $client->send($request);
    $poll = new ZMQPoll();
    $poll->add($client, ZMQ::POLL_IN);
    $readable = $writable = array();
    $events = $poll->poll($readable, $writable, $request_timeout);
    $reply = null;
    foreach ($readable as $sock) {
        if ($sock == $client) {
            $reply = $client->recvMulti();
        } else {
            $reply = null;
        }
    }
    $poll->remove($client);
    $poll = null;
    $client = null;
    return $reply;
}