PHP Conference Nagoya 2025

Stomp::subscribe

stomp_subscribe

(PECL stomp >= 0.1.0)

Stomp::subscribe -- stomp_subscribeRegistrarse para escuchar a un destino dado

Descripción

Estilo orientado a objetos (método):

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

Estilo por procedimientos:

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

Registrarse para escuchar a un destino dado.

Parámetros

link

Sólo estilo por procediminetos: El identificador de enlace Stomp devuelto por stomp_connect().

destination

Destino al que suscribirse.

headers

Array asociativo conteniendo los headers adicionales (ejemplo: receipt).

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Vea stomp_ack().

Notas

Sugerencia

Stomp es inherentemente asíncrono. Comunicación sincrónica puede ser implementada agregando un header receipt. Esto ocasionará métodos para no devolver nada hasta que el servidor haya recibido un Acknowledgment del mensaje o hasta que el tiempo de espera para lectura se agote.

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