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();
Примечание: помимо использования анонимной функции в качестве обратного вызова, можно также просмотреть здесь другие способы записи обратных вызовов.