Stomp::subscribe

stomp_subscribe

(PECL stomp >= 0.1.0)

Stomp::subscribe -- stomp_subscribe — Souscrit à l'écoute d'une destination donnée

Description

Style orienté objet (méthode) :

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

Style procédural :

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

Souscrit à l'écoute d'une destination donnée.

Liste de paramètres

link
Style procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().
destination
Destination à écouter.
headers
Tableau associatif contenant les en-têtes additionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Voir stomp_ack().

Notes

Astuce

Stomp est, par nature, asynchrone. Une communication synchrone peut être implémentée en ajoutant un en-tête receipt. Ceci fera que les méthodes ne retourneront rien tant que le message de confirmation n'aura pas été reçu ou tant que le délai d'attente ne sera pas atteint.

+add a note

User Contributed Notes 1 note

up
0
holycd
9 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