public function onFinish() { parent::onFinish(); $this->event('disconnect'); if (isset($this->xml)) { $this->xml->finish(); } unset($this->roster); if ($this->keepaliveTimer) { Timer::remove($this->keepaliveTimer); } }