Start · Sprachen · PHP · Referenz · stomp_error

stomp_error

Funktion

Gibt die Fehlermeldung des letzten aufgetretenen Stomp-Fehlers für eine bestehende Verbindung zurück.

seit PHP 0.1.0 Kategorie: misc

Signatur

stomp_error(resource $link): string

Beschreibung

stomp_error() ist die prozedurale Variante der Methode Stomp::error() und gibt den Fehlertext zurück, der beim letzten fehlgeschlagenen Stomp-Operationsaufruf auf der angegebenen Verbindung aufgezeichnet wurde. Die Funktion gehört zur Stomp-PECL-Erweiterung, die die Kommunikation mit Message-Brokern wie ActiveMQ oder RabbitMQ über das STOMP-Protokoll ermöglicht.

Die Funktion ist besonders nützlich zur Fehlerdiagnose nach Operationen wie stomp_send(), stomp_subscribe() oder stomp_read_frame(), wenn diese false zurückgeben. Anstatt eine Exception zu werfen, speichert die Stomp-Erweiterung intern die letzte Fehlermeldung, die dann über stomp_error() abgerufen werden kann.

Liefert die Funktion eine leere Zeichenkette zurück, ist kein Fehler aufgetreten oder der interne Fehlerpuffer wurde zurückgesetzt. Es empfiehlt sich, den Rückgabewert nach jedem kritischen Stomp-Aufruf zu prüfen, um Verbindungs- und Protokollfehler frühzeitig zu erkennen und zu behandeln.

Parameter

Name Typ Default Beschreibung
$link Pflicht resource Eine aktive Stomp-Verbindungsressource, die zuvor mit stomp_connect() erstellt wurde.

Rückgabewert

Typ
string
Beschreibung
Gibt die Fehlermeldung des letzten aufgetretenen Fehlers als Zeichenkette zurück. Ist kein Fehler vorhanden, wird eine leere Zeichenkette zurückgegeben.

Beispiele

Fehlerbehandlung nach einem fehlgeschlagenen Stomp-Aufruf

<?php
// Verbindung zum Stomp-Broker herstellen
$link = stomp_connect('tcp://localhost:61613');

if (!$link) {
    die('Verbindung fehlgeschlagen: ' . stomp_connect_error());
}

// Versuch, eine Nachricht zu senden
$result = stomp_send($link, '/queue/test', 'Hallo Welt');

if (!$result) {
    $error = stomp_error($link);
    echo 'Fehler beim Senden: ' . $error . PHP_EOL;
} else {
    echo 'Nachricht erfolgreich gesendet.' . PHP_EOL;
}

stomp_close($link);
Nachricht erfolgreich gesendet.

Fehlerprüfung nach dem Abonnieren einer Queue

<?php
$link = stomp_connect('tcp://localhost:61613');

if (!$link) {
    die('Verbindung fehlgeschlagen.');
}

// Versuch, eine nicht existierende oder gesperrte Queue zu abonnieren
$subscribed = stomp_subscribe($link, '/queue/gesperrte-queue', ['ack' => 'client']);

if (!$subscribed) {
    $fehlermeldung = stomp_error($link);
    if ($fehlermeldung !== '') {
        echo 'Abonnement fehlgeschlagen. Stomp-Fehler: ' . $fehlermeldung . PHP_EOL;
    } else {
        echo 'Abonnement fehlgeschlagen, kein spezifischer Fehler gespeichert.' . PHP_EOL;
    }
} else {
    echo 'Queue erfolgreich abonniert.' . PHP_EOL;
}

stomp_close($link);

// Wichtig · Fallstricke

Hinweis zur Erweiterung: Die Stomp-PECL-Erweiterung wird seit Jahren kaum noch aktiv gepflegt. Für neue Projekte empfiehlt es sich, auf alternative Bibliotheken wie stomp-php (Composer-Paket) oder AMQP-Bibliotheken zurückzugreifen, die aktiver gewartet werden.

Fehlerpuffer: Der interne Fehlerpuffer wird nicht automatisch nach jedem Aufruf geleert. Es ist daher möglich, dass stomp_error() einen Fehler aus einem früheren Aufruf zurückgibt, wenn seitdem keine neue Stomp-Operation durchgeführt wurde. Prüfen Sie den Fehler stets direkt nach dem verdächtigen Aufruf.

Objektorientierten Stil bevorzugen: Bei Verwendung der objektorientierten Schnittstelle steht die äquivalente Methode Stomp::error() zur Verfügung.