/**
  * @inheritdoc
  */
 public function handleMessage(AbstractMessage $message, ConnectionInterface $sender)
 {
     // Only handle one type of request
     if ($message->getType() === AbstractMessage::TYPE_USERS_REQUEST) {
         return new UsersResponse([]);
     }
     return false;
 }
 /**
  * @inheritdoc
  */
 public function handleMessage(AbstractMessage $message, ConnectionInterface $sender)
 {
     // Wrap database exceptions in the more generic RequestFailedException
     try {
         switch ($message->getType()) {
             case AbstractMessage::TYPE_POPULAR_CHANNELS_REQUEST:
                 /* @var PopularChannelsRequest $message */
                 return new PopularChannelsResponse($message, $this->getPopularChannels($message->getInstanceName(), $message->getUserName(), $message->getLimit(), $message->getTimeFrame()));
             case AbstractMessage::TYPE_MOST_ACTIVE_WATCHERS_REQUEST:
                 /* @var MostActiveWatchersRequest $message */
                 return new MostActiveWatchersResponse($message, $this->getMostActiveWatchers($message->getInstanceName(), $message->getLimit(), $message->getTimeFrame()));
             case AbstractMessage::TYPE_INSTANCES_REQUEST:
                 /* @var InstancesRequest $message */
                 return new InstancesResponse($this->configuration->getInstances());
             case AbstractMessage::TYPE_USERS_REQUEST:
                 /* @var UsersRequest $message */
                 return new UsersResponse($this->getUsers($message->getInstanceName()));
         }
     } catch (PropelException $e) {
         throw new RequestFailedException('A database error occured: ' . $e->getMessage());
     }
     return false;
 }
 /**
  * @inheritdoc
  */
 public function handleMessage(AbstractMessage $message, ConnectionInterface $sender)
 {
     if ($message->getType() !== AbstractMessage::TYPE_AUTHENTICATION_REQUEST) {
         return false;
     }
     /* @var AuthenticationRequest $message */
     $status = AuthenticationResponse::STATUS_FAILURE;
     // Add the sender to the list of authenticated clients
     if ($message->getAccessToken() === $this->configuration->getAccessToken()) {
         $status = AuthenticationResponse::STATUS_SUCCESS;
         $this->_authenticatedClients->attach($sender);
         $this->logger->notice('Client authenticated successfully');
     } else {
         $this->logger->warning('Got invalid authentication request from client');
     }
     return new AuthenticationResponse($status);
 }