/**
  * Demande au serveur de mise à jour de récupérer les dernières infos des topics
  * suivis.
  */
 private function delegateTopicsUpdate()
 {
     $this->logger->ln("Delegation de la mise a jour des topics...", 2);
     $message = SocketMessage::fromData('getTopicUpdates', SocketMessage::compress(serialize($this->topics)));
     $this->updateServerConnection->send($message->toJson());
     $this->logger->ln("envoye : " . print_r(unserialize(serialize($this->topics)), true), 3);
 }
Ejemplo n.º 2
0
 /**
  * Envoie les infos du topic à une connexion en particulier.
  */
 public function sendInfosTo($follower)
 {
     $message = SocketMessage::fromData('topicInfos', $this->getInfos());
     $follower->send($message->toJson());
 }
 /**
  * Récupère la mises à jour des topics et les communique au serveur principal
  */
 private function getTopicUpdates($serializedTopics)
 {
     $topics = unserialize(SocketMessage::uncompress($serializedTopics));
     $this->logger->ln('Mise a jour de ' . count($topics) . ' topics...', 2);
     //On reset les topics
     $this->curlm->clearTopics();
     foreach ($topics as $topic) {
         $this->logger->ln("Topic '{$topic->getId()}' marque pour mise a jour", 3);
         $this->curlm->addTopic($topic);
     }
     //Récupération des infos des topics
     $topics = $this->curlm->getUpdatedTopics();
     //On envoie les infos au serveur principal
     $updateMessage = SocketMessage::fromData("topicsUpdate", SocketMessage::compress(serialize($topics)));
     $this->mainServerConnection->send($updateMessage->toJson());
 }