onClose

Erklärung:

callback Worker::$onClose

Ein Rückruffunktion, die aufgerufen wird, wenn die Verbindung des Clients zu Workerman getrennt wird. Unabhängig davon, wie die Verbindung getrennt wird, wird onClose ausgelöst. Jede Verbindung löst nur einmal onClose aus.

Hinweis: Wenn die Gegenstelle die Verbindung unter extremen Bedingungen wie Netzwerkunterbrechung oder Stromausfall trennt, kann Workerman aufgrund der Unfähigkeit, das TCP-FIN-Paket rechtzeitig an Workerman zu senden, nicht erkennen, dass die Verbindung getrennt wurde, und kann daher nicht rechtzeitig onClose auslösen. In diesem Fall muss das Problem durch das Herzbeat auf Anwendungsebene gelöst werden. Sie können die Implementierung des Verbindungs-Herzschlags in Workerman hier nachsehen. Wenn Sie das GatewayWorker-Framework verwenden, können Sie einfach den Herzschlagmechanismus des GatewayWorker-Frameworks verwenden, siehe hier. Bei der Verwendung von UDP wird keine onConnect-Callback oder onClose-Callback ausgelöst, da UDP verbindungslos ist.

Parameter der Rückruffunktion

$connection

Das Verbindungsobjekt, d.h. die Instanz TcpConnection, die für die Verwaltung der Clientverbindung verwendet wird, 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 "Verbindung geschlossen\n";
};
// Worker ausführen
Worker::runAll();

Hinweis: Neben der Verwendung anonymer Funktionen als Rückruffunktion können auch andere Rückrufmethoden verwendet werden, siehe hier.