onClose

Beschreibung:

callback Worker::$onClose

Dies ist die Callback-Funktion, die ausgelöst wird, wenn die Verbindung zwischen dem Client und Workerman getrennt wird. Unabhängig davon, wie die Verbindung getrennt wurde, wird onClose ausgelöst, sobald die Verbindung getrennt ist. Jede Verbindung löst nur einmal onClose aus.

Hinweis: Wenn die Verbindung aufgrund extremer Bedingungen wie Netzausfall oder Stromausfall getrennt wird, kann Workerman nicht rechtzeitig das TCP-FIN-Paket senden, um zu wissen, dass die Verbindung getrennt wurde, und kann daher onClose nicht rechtzeitig auslösen. Solche Situationen müssen durch Heartbeats auf Anwendungsebene gelöst werden. Die Implementierung von Heartbeats für Verbindungen in Workerman finden Sie hier. Wenn das GatewayWorker-Framework verwendet wird, können Sie einfach den Heartbeat-Mechanismus dieses Frameworks verwenden, siehe hier.

Da UDP verbindungslos ist, wird beim Einsatz von UDP weder das onConnect-Callback noch das onClose-Callback ausgelöst.

Parameter der Callback-Funktion

$connection

Das Verbindungsobjekt, d.h. TcpConnection-Instanz, das verwendet wird, um mit der Client-Verbindung zu interagieren, wie z.B. Daten senden, Verbindung schließen usw.

Beispiel

use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker('websocket://0.0.0.0:8484');
$worker->onClose = function(TcpConnection $connection)
{
    echo "connection closed\n";
};
// Worker ausführen
Worker::runAll();

Hinweis: Neben der Verwendung anonymer Funktionen als Callback können Sie auch hier andere Callback-Schreibweisen verwenden.