Stomp::subscribe
stomp_subscribe
(PECL stomp >= 0.1.0)
Stomp::subscribe -- stomp_subscribe — Registers to listen to a given destination
Description
Object oriented style (method):
$destination
[, array $headers
] )Procedural style:
$link
, string $destination
[, array $headers
] )Registers to listen to a given destination.
Parameters
-
link
-
Procedural style only: The stomp link identifier returned by stomp_connect().
-
destination
-
Destination to subscribe to.
-
headers
-
Associative array containing the additional headers (example: receipt).
Return Values
Returns TRUE
on success or FALSE
on failure.
Notes
Stomp is inherently asynchronous. Synchronous communication can be implemented adding a receipt header. This will cause methods to not return anything until the server has acknowledged receipt of the message or until read timeout was reached.
Examples
See stomp_ack().
- Функция Stomp::abort() - Отменяет выполнение текущей транзакции
- Функция Stomp::ack() - Подтверждает получение сообщения
- Функция Stomp::begin() - Создает транзакцию
- Функция Stomp::commit() - Выполняет текущую транзакцию
- Функция Stomp::__construct() - Открывает соединение
- Функция Stomp::__destruct() - Закрывает Stomp-соединение
- Функция Stomp::error() - Возвращает последнюю ошибку Stomp
- Функция Stomp::getReadTimeout() - Возвращает время максимального ожидания операции чтения
- Функция Stomp::getSessionId() - Возвращает идентификатор текущей сессии Stomp
- Функция Stomp::hasFrame() - Проверяет, возможно ли чтение фрейма
- Функция Stomp::readFrame() - Выполняет операцию чтения следующего фрейма
- Функция Stomp::send() - Отправляет сообщение
- Функция Stomp::setReadTimeout() - Устанавливает предельное время ожидания операции чтения
- Функция Stomp::subscribe() - Регистрирует подписку на указанную рассылку
- Функция Stomp::unsubscribe() - Удаляет существующую подписку
Коментарии
Using Topics from PHP over Stomp
$clientId = 'test:dev';
$topic = '/topic/perm.user';
try {
$stomp = new Stomp('tcp://localhost:61613','system','manager', array('client-id'=> $clientId ));
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}
$isSubscribe = $stomp->subscribe($topic);
while($isSubscribe){
if ($stomp->hasFrame()) {
$frame = $stomp->readFrame();
if ($frame != NULL) {
print "Received: " . $frame->body . " - time now is " . date("Y-m-d H:i:s"). "\n";
// $stomp->ack($frame);
}
// sleep(1);
}
else {
print "No frames to read\n";
}
}
if($isSubscribe){
$stomp->unsubscribe($topic);
unset($stomp);
}
Can not receive the topic frame