SAMConnection {
string send(string target,
SAMMessage msg,
array properties);
}
The "send" method is used to send a message to a specific queue or to
publish to a specific topic. The method returns a correlation id that can
be used as a selector to identify reply or response messages when these
are requested.
Parameters
- target
If sending a message, the identity of the queue (queue://queuename)
or if publishing to a topic the identity of the topic
(topic://topicname) to which the message is to be delivered.
- msg
The message to be sent or published.
- properties
-
An optional associative array of properties describing other
parameters to control the receive operation.
Return Values
A correlation id string that can be used in a subsequent receive call as a
selector to obtain any reply or response that has been requested or FALSE
if an error occurred.
Note:
A correlation id will only be returned for a successful send to a queue
destination (queue://xxxx) in which case it will reflect the message
identitiy of the message on the queue. In the case of a send being used
to publish data to a topic the return value will be TRUE
as no
correlation id is availabe for return.
Examples
Example 2127. Send a message to a queue
<?php
$msg = new SAMMessage('This is a simple text message');
$correlId = $conn->send('queue://send/test', $msg);
if (!$correlId) {
// The send failed!
echo "Send failed ($conn->errno) $conn->error";
}
?>
Example 2128. Publish a message to a topic
<?php
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
// The Send failed!
echo "Send failed ($conn->errno) $conn->error";
}
?>
Example 2129. Send a request and receive a response
<?php
$msg = new SAMMessage('This is a simple text message');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);
if (!$correlid) {
// The Send failed!
echo "Send failed ($conn->errno) $conn->error";
} else {
$resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>