onClose

Описание:

callback Worker::$onClose

Обратный вызов, который срабатывает, когда клиентское соединение разрывается с Workerman. Независимо от причины разрыва соединения, onClose будет вызван при любом разрыве соединения. Каждое соединение вызовет onClose только один раз.

Примечание: если соединение разорвано из-за экстремальных ситуаций, таких как потеря сети или отключение питания на стороне клиента, в этом случае, так как Workerman не может своевременно отправить tcp пакет о завершении соединения, Workerman не узнает, что соединение было разорвано, и не вызовет onClose вовремя. Эта ситуация требует реализации прикладного уровня мониторинга связи. Использование мониторинга соединения в Workerman описано здесь. Если используется фреймворк GatewayWorker, достаточно использовать механизм мониторинга соединения в GatewayWorker, см. здесь.

Поскольку UDP соединение является без подключения, то при использовании UDP не будет вызвано обратного вызова onConnect и onClose.

Параметры функции обратного вызова

$connection

Объект соединения, то есть экземпляр TcpConnection, используемый для работы с клиентским соединением, такой как отправка данных, закрытие соединения и т. д.

Пример

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 "соединение закрыто\n";
};
// Запуск worker
Worker::runAll();

Примечание: помимо использования анонимной функции в качестве обратного вызова, можно также просмотреть здесь другие способы записи обратных вызовов.