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.