/** * Process Unregistered * * @param \Thruway\Message\UnregisteredMessage $msg */ protected function processUnregistered(UnregisteredMessage $msg) { foreach ($this->registrations as $key => $registration) { if (isset($registration['unregister_request_id'])) { if ($registration["unregister_request_id"] == $msg->getRequestId()) { /** @var $deferred \React\Promise\Deferred */ $deferred = $registration['unregister_deferred']; $deferred->resolve(); unset($this->registrations[$key]); return; } } } Logger::error($this, "Got an Unregistered Message, but couldn't find corresponding request"); }
/** * process unregister * * @param \Thruway\Session $session * @param \Thruway\Message\UnregisterMessage $msg * @return bool */ public function processUnregister(Session $session, UnregisterMessage $msg) { for ($i = 0; $i < count($this->registrations); $i++) { /** @var Registration $registration */ $registration = $this->registrations[$i]; if ($registration->getId() == $msg->getRegistrationId()) { // make sure the session is the correct session if ($registration->getSession() !== $session) { $session->sendMessage(ErrorMessage::createErrorMessageFromMessage($msg, "wamp.error.no_such_registration")); //$this->manager->warning("Tried to unregister a procedure that belongs to a different session."); return false; } array_splice($this->registrations, $i, 1); // TODO: need to handle any calls that are hanging around $session->sendMessage(UnregisteredMessage::createFromUnregisterMessage($msg)); return true; } } $session->sendMessage(ErrorMessage::createErrorMessageFromMessage($msg, 'wamp.error.no_such_registration')); return false; }
/** * @param ClientSession $session * @param UnregisteredMessage $msg */ public function processUnregistered(ClientSession $session, UnregisteredMessage $msg) { foreach ($this->registrations as $key => $registration) { if (isset($registration['unregister_request_id'])) { if ($registration["unregister_request_id"] == $msg->getRequestId()) { /** @var Deferred $deferred */ $deferred = $registration['unregister_deferred']; $deferred->resolve(); unset($this->registrations[$key]); return; } } } $this->logger->error("---Got an Unregistered Message, but couldn't find corresponding request.\n"); }