PHP Conference Nagoya 2025

Stomp::subscribe

stomp_subscribe

(PECL stomp >= 0.1.0)

Stomp::subscribe -- stomp_subscribeRegisters to listen to a given destination

Опис

Об'єктно-орієнтований стиль (method):

public Stomp::subscribe(string $destination, array $headers = ?): bool

Процедурний стиль:

stomp_subscribe(resource $link, string $destination, array $headers = ?): bool

Registers to listen to a given destination.

Параметри

link

Тільки процедурний стиль: Ідентифікатор з'єднання Stomp, якого повертає функція stomp_connect().

destination

Destination to subscribe to.

headers

Асоціативний масив, що містить додаткові заголовки (наприклад: "receipt").

Значення, що повертаються

Повертає true у разі успіху або false в разі помилки.

Приклади

See stomp_ack().

Примітки

Підказка

Stomp за своєю суттю є асинхронним. Синхронні з'єднання можна встановлювати, додавши заголовок "receipt". Це призведе до того, що методи нічого не повертатимуть, доки сервер не підтвердить отримання повідомлення або доки не мине час очікування читання.

add a note

User Contributed Notes 1 note

up
-1
holycd
7 years ago
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
To Top