ZMQSocket::recv
(PECL zmq >= 0.5.0)
ZMQSocket::recv — Receives a message
说明
   Receive a message from a socket. By default receiving will block until a message is available unless
   ZMQ::MODE_DONTWAIT flag is used. ZMQ::SOCKOPT_RCVMORE
   socket option can be used for receiving multi-part messages. See ZMQSocket::setSockOpt() 
   for more information.
  
参数
mode- 
      
Pass mode flags to receive multipart messages or non-blocking operation. See
ZMQ::MODE_*constants. 
返回值
   Returns the message. If ZMQ::MODE_DONTWAIT 
   is used and the operation would block false shall be returned.
  
错误/异常
Throws ZMQSocketException on error.
示例
示例 #1 A send/recv example
Non-blocking send / receive
<?php
/* Create new queue object, there needs to be a server at the other end */
$queue = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ);
$queue->connect("tcp://127.0.0.1:5555");
/* Assign socket 1 to the queue, send and receive */
$retries = 5;
$sending = true;
/* Start a loop */
do {
    try {
/* Try to send / receive */
if ($sending) {
            echo "Sending message\n";
$queue->send("This is a message", ZMQ::MODE_DONTWAIT);
$sending = false;
        } else {
            echo "Got response: " . $queue->recv(ZMQ::MODE_DONTWAIT) . "\n";
            break;
        }
    } catch (ZMQSocketException $e) {
/* EAGAIN means that the operation would have blocked, retry */
if ($e->getCode() === ZMQ::ERR_EAGAIN) {
            echo " - Got EAGAIN, retrying ($retries)\n";
        } else {
            die(" - Error: " . $e->getMessage());
        }
    }
/* Sleep a bit between operations */
usleep(5);
} while (--$retries);
?>以上示例的输出类似于:
Sending message - Unable to execute operation, retrying (4) Got response: This is a message
  +添加备注
  
 用户贡献的备注
此页面尚无用户贡献的备注。