onClose
Description:
callback Worker::$onClose
Fonction de rappel déclenchée lorsque la connexion entre le client et Workerman est interrompue. Peu importe comment la connexion a été interrompue, dès qu'elle est interrompue, onClose sera déclenché. Chaque connexion ne déclenchera onClose qu'une seule fois.
Attention : Si la connexion est interrompue en raison de situations extrêmes telles qu'une coupure de réseau ou une panne de courant, Workerman ne pourra pas savoir que la connexion est fermée car il ne peut pas envoyer le paquet tcp fin à temps. Par conséquent, il ne pourra pas déclencher onClose rapidement. Cette situation doit être résolue par un mécanisme de heartbeat au niveau de l'application. Pour la mise en œuvre du heartbeat dans Workerman, veuillez vous référer à ici. Si vous utilisez le framework GatewayWorker, il suffit d'utiliser le mécanisme de heartbeat de GatewayWorker, veuillez vous référer à ici.
Étant donné que UDP est sans connexion, l'utilisation de UDP ne déclenchera pas le rappel onConnect, ni le rappel onClose.
Paramètres de la fonction de rappel
$connection
Objet de connexion, c'est-à-dire une instance de TcpConnection, utilisée pour effectuer des opérations sur la connexion du client, comme envoyer des données, fermer la connexion, etc.
Exemple
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 "connexion fermée\n";
};
// Exécuter le worker
Worker::runAll();
Conseil : En plus d'utiliser des fonctions anonymes comme rappel, vous pouvez également vous référer ici pour utiliser d'autres méthodes de rappel.