Start · Sprachen · PHP · Referenz · stomp_get_read_timeout

stomp_get_read_timeout

Funktion

Gibt das aktuell gesetzte Lese-Timeout einer Stomp-Verbindung als Array mit Sekunden und Mikrosekunden zurück.

seit PHP 0.3.0 Kategorie: misc

Signatur

stomp_get_read_timeout(resource $link): array

Beschreibung

stomp_get_read_timeout() liest das Lese-Timeout einer bestehenden Stomp-Verbindungsressource aus. Das Timeout gibt an, wie lange blockierende Leseoperationen auf eine Antwort des Stomp-Servers warten, bevor sie mit einem Fehler abbrechen.

Der Rückgabewert ist ein assoziatives Array mit zwei Schlüsseln: sec für den Sekunden-Anteil und usec für den Mikrosekunden-Anteil des Timeouts. Beide Werte zusammen ergeben das vollständige Timeout-Intervall.

Diese Funktion ist nützlich, wenn man das aktuell gesetzte Timeout prüfen möchte, etwa bevor man es mit stomp_set_read_timeout() ändert oder um sicherzustellen, dass das gewünschte Timeout korrekt gesetzt wurde. Sie gehört zur prozeduralen Schnittstelle der PECL-Stomp-Erweiterung.

Die objektorientierte Entsprechung ist die Methode Stomp::getReadTimeout().

Parameter

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

Rückgabewert

Typ
array
Beschreibung
Gibt ein assoziatives Array zurück, das die Schlüssel sec (Sekunden-Anteil, int) und usec (Mikrosekunden-Anteil, int) enthält.

Beispiele

Lese-Timeout einer Stomp-Verbindung auslesen

<?php
// Verbindung zu einem Stomp-Server herstellen
$stomp = stomp_connect('tcp://localhost:61613');

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

// Aktuelles Lese-Timeout auslesen
$timeout = stomp_get_read_timeout($stomp);

echo 'Lese-Timeout: ' . $timeout['sec'] . ' Sekunden, ' . $timeout['usec'] . ' Mikrosekunden' . PHP_EOL;

stomp_close($stomp);
Lese-Timeout: 2 Sekunden, 0 Mikrosekunden

Timeout prüfen und bei Bedarf anpassen

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

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

$timeout = stomp_get_read_timeout($stomp);

// Wenn das Timeout weniger als 5 Sekunden beträgt, anpassen
if ($timeout['sec'] < 5) {
    stomp_set_read_timeout($stomp, 5, 0);
    echo 'Timeout wurde auf 5 Sekunden erhöht.' . PHP_EOL;
} else {
    echo 'Timeout ist ausreichend: ' . $timeout['sec'] . 's ' . $timeout['usec'] . 'µs' . PHP_EOL;
}

stomp_close($stomp);
Timeout wurde auf 5 Sekunden erhöht.

// Wichtig · Fallstricke

PECL-Erweiterung: stomp_get_read_timeout() ist Teil der PECL-Stomp-Erweiterung und steht nicht in der PHP-Standardinstallation zur Verfügung. Die Erweiterung muss separat installiert werden (pecl install stomp).

Das Stomp-Protokoll wird von Message-Brokern wie Apache ActiveMQ oder RabbitMQ (mit Stomp-Plugin) unterstützt. Beachte, dass die Stomp-PECL-Erweiterung seit einiger Zeit kaum noch aktiv weiterentwickelt wird. Für neue Projekte können alternativere Bibliotheken oder AMQ-spezifische Erweiterungen in Betracht gezogen werden.