public function onMessage(TransportInterface $transport, Message $msg)
{
/** @var $session Session */
$session = $this->sessions[$transport];
// see if the session is in a realm
if ($session->getRealm() === null) {
// hopefully this is a HelloMessage or we have no place for this message to go
if ($msg instanceof HelloMessage) {
if (RealmManager::validRealmName($msg->getRealm())) {
$realm = $this->realmManager->getRealm($msg->getRealm());
$realm->onMessage($session, $msg);
} else {
// TODO send bad realm error back and shutdown
$session->shutdown();
}
} else {
$session->shutdown();
}
} else {
$realm = $session->getRealm();
$realm->onMessage($session, $msg);
}
}