onClose
Descrição:
callback Worker::$onClose
Função de callback ativada quando a conexão do cliente é encerrada com o Workerman. Independentemente de como a conexão foi encerrada, assim que houver o desligamento, o onClose será acionado. Cada conexão acionará o onClose apenas uma vez.
Atenção: Se a conexão for encerrada devido a situações extremas, como perda de conexão com a Internet ou queda de energia, e o pacote FIN do TCP não puder ser enviado imediatamente ao Workerman, este não saberá que a conexão foi encerrada e, portanto, não poderá acionar o onClose a tempo. Esta situação deve ser resolvida através de um heartbeat na camada de aplicação. Para mais detalhes sobre a implementação do heartbeat em conexões no Workerman, consulte aqui. Se você estiver utilizando o framework GatewayWorker, pode usar diretamente o mecanismo de heartbeat do GatewayWorker, consulte aqui.
Como o UDP é sem conexão, ao usar UDP não será acionado o callback onConnect, nem o callback onClose.
Parâmetros da função callback
$connection
Objeto de conexão, ou seja, uma instância de TcpConnection, utilizada para operar a conexão do cliente, como enviar dados, fechar a conexão, etc.
Exemplo
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 "conexão encerrada\n";
};
// Executar worker
Worker::runAll();
Dica: Além de usar funções anônimas como callback, você também pode consultar aqui para usar outras formas de callback.