当前位置: 首页>>代码示例>>PHP>>正文


PHP ZMQSocket::recvMulti方法代码示例

本文整理汇总了PHP中ZMQSocket::recvMulti方法的典型用法代码示例。如果您正苦于以下问题:PHP ZMQSocket::recvMulti方法的具体用法?PHP ZMQSocket::recvMulti怎么用?PHP ZMQSocket::recvMulti使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ZMQSocket的用法示例。


在下文中一共展示了ZMQSocket::recvMulti方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: request

 /**
  * @param string $request
  */
 public function request($request)
 {
     // Prefix request with sequence number and empty envelope
     $this->sequence++;
     $msg = array('', $this->sequence, $request);
     // Blast the request to all connected servers
     for ($server = 1; $server <= $this->servers; $server++) {
         $this->socket->sendMulti($msg);
     }
     // Wait for a matching reply to arrive from anywhere
     // Since we can poll several times, calculate each one
     $poll = new ZMQPoll();
     $poll->add($this->socket, ZMQ::POLL_IN);
     $reply = null;
     $endtime = time() + self::GLOBAL_TIMEOUT / 1000;
     while (time() < $endtime) {
         $readable = $writable = array();
         $events = $poll->poll($readable, $writable, ($endtime - time()) * 1000);
         foreach ($readable as $sock) {
             if ($sock == $this->socket) {
                 $reply = $this->socket->recvMulti();
                 if (count($reply) != 3) {
                     exit;
                 }
                 $sequence = $reply[1];
                 if ($sequence == $this->sequence) {
                     break;
                 }
             }
         }
     }
     return $reply;
 }
开发者ID:inactivist,项目名称:zguide,代码行数:36,代码来源:flclient2.php

示例2: receiveResponse

 /**
  * {@inheritDoc}
  */
 public function receiveResponse()
 {
     try {
         $result = $this->socket->recvMulti();
     } catch (\ZMQSocketException $e) {
         throw new TransportException('Cannot receive response', 0, $e);
     }
     if ($result === false) {
         throw new TimeoutException('Timeout (' . $this->getTimeout() . 's) reached');
     }
     if (!isset($result[0])) {
         throw new FormatException('Invalid response - no response type', $result);
     }
     if (!isset($result[1])) {
         throw new FormatException('Invalid response - no headers', $result);
     }
     $response = new Response($result[0]);
     $response->setHeaders(new Headers(Parser::parseHeaders($result[1])));
     if (!MessageTypes::isResponseTypeWithResult($response->getType())) {
         return $response;
     }
     if (!isset($result[2])) {
         throw new FormatException('Invalid response - no response body', $result);
     }
     return $response->setResultBody($result[2]);
 }
开发者ID:wookieb,项目名称:zorro-rpc,代码行数:29,代码来源:ZeroMQClientTransport.php


注:本文中的ZMQSocket::recvMulti方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。