/** * @TODO DESCR * @return void */ public function onFinish() { if ($this->onFinishedCalled) { return; } $this->onFinishedCalled = true; $this->appInstance->unsubscribe('c2s:' . $this->id, [$this, 'c2s']); $this->appInstance->unsubscribe('poll:' . $this->id, [$this, 'poll']); if (isset($this->route)) { $this->route->onFinish(); } $this->onWrite->reset(); $this->route = null; Timer::remove($this->finishTimer); $this->appInstance->endSession($this); }