/** * Set the current SocketSession PageID back to null * and then let users know current user is leaving the page * @param SS_HTTPRequst $message * @return void */ public function leave($message) { $data = $this->getMessageBody($message); $pageId = $data->pageId; $socketId = $this->getMessageSocketID($message); // update current socket session $session = SocketSession::get()->filter('SocketID', $socketId)->first(); // failsafe if (!$session || !$session->exists()) { $session = new SocketSession(); $session->MemberID = Member::currentUserID(); $session->SocketID = $socketId; } $session->PageID = null; $session->write(); $this->emitUserLeaving($socketId, $pageId, $session->Member()); }