onClose

Descripción:

callback Worker::$onClose

La función de callback que se activa cuando se cierra la conexión entre el cliente y Workerman. Independientemente de cómo se haya cerrado la conexión, se activará onClose en cuanto la conexión se haya interrumpido. Cada conexión solo activará onClose una vez.

Nota: Si la conexión se pierde debido a situaciones extremas como la pérdida de conexión a Internet o corte de electricidad, Workerman no podrá saber que la conexión se ha cerrado a tiempo porque no puede enviar el paquete fin de TCP a Workerman. Por lo tanto, onClose no se activará de inmediato. Esta situación debe resolverse mediante un mecanismo de latido a nivel de aplicación. La implementación del latido en las conexiones de Workerman se puede ver aquí. Si se utiliza el marco GatewayWorker, se puede utilizar directamente el mecanismo de latido de GatewayWorker, véase aquí.

Dado que UDP es una conexión sin conexión, no se activará el callback onConnect ni onClose al usar UDP.

Parámetros de la función de callback

$connection

Objeto de conexión, es decir, una instancia de TcpConnection, utilizada para operar la conexión del cliente, como enviar datos, cerrar la conexión, etc.

Ejemplo

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";
};
//  Ejecutar worker
Worker::runAll();

Sugerencia: Además de usar una función anónima como callback, también se puede consultar aquí para utilizar otros estilos de escritura de callbacks.