ZMQSocket::recv
(PECL zmq >= 0.5.0)
ZMQSocket::recv — Receives a message
Description
$mode
= 0
] )
Receive a message from a socket. By default receiving will block until a message is available unless
ZMQ::MODE_NOBLOCK
flag is used. ZMQ::SOCKOPT_RCVMORE
socket option can be used for receiving multi-part messages. See ZMQSocket::setSockOpt()
for more information.
Parameters
-
mode
-
Pass mode flags to receive multipart messages or non-blocking operation. See
ZMQ::MODE_*
constants.
Examples
Example #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_NOBLOCK);
$sending = false;
} else {
echo "Got response: " . $queue->recv(ZMQ::MODE_NOBLOCK) . "\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);
?>
The above example will output something similar to:
Sending message - Unable to execute operation, retrying (4) Got response: This is a message
Return Values
Returns the message. Throws ZMQSocketException in error.
If ZMQ::MODE_NOBLOCK
is used and the operation would
block boolean false shall be returned.
- Функция ZMQSocket::bind() - Bind the socket
- Функция ZMQSocket::connect() - Connect the socket
- Функция ZMQSocket::__construct() - Construct a new ZMQSocket
- Функция ZMQSocket::disconnect() - Disconnect a socket
- Функция ZMQSocket::getEndpoints() - Get list of endpoints
- Функция ZMQSocket::getPersistentId() - Get the persistent id
- Функция ZMQSocket::getSocketType() - Get the socket type
- Функция ZMQSocket::getSockOpt() - Get socket option
- Функция ZMQSocket::isPersistent() - Whether the socket is persistent
- Функция ZMQSocket::recv() - Receives a message
- Функция ZMQSocket::recvMulti() - Receives a multipart message
- Функция ZMQSocket::send() - Sends a message
- Функция ZMQSocket::sendmulti() - Sends a multipart message
- Функция ZMQSocket::setSockOpt() - Set a socket option
- Функция ZMQSocket::unbind() - Unbind the socket
Коментарии
404 Not Found