Ejemplo n.º 1
0
 /**
  * This sends a blanket DMN to the user's closest connections
  */
 function broadcast()
 {
     // fixme: obviously
     if ($GLOBALS['bcflag']) {
         return;
     } else {
         $GLOBALS['bcflag'] = true;
     }
     $this->sanitizeDataset();
     $this->executeHandler('broadcast');
     $this->payload = json_encode($this->data);
     $requests = array();
     foreach (HubbubConnection::GetClosestServers($this->authorEntity->key()) as $con) {
         $req_urls[] = $con['s_url'];
         $requests[] = array('url' => $con['s_url'], 'params' => array('hubbub_sig' => md5($con['s_key_out'] . trim($this->payload))));
         WriteToFile('log/activity.log', '- broadcast to server ' . $con['s_url'] . chr(10));
     }
     $messageData = array('hubbub_msg' => $this->payload);
     if (sizeof($req_urls) > 0) {
         HubbubEndpoint::multiRequest($requests, $messageData);
         h2_audit_log('msg/broadcast', array('to' => $req_urls), $this->data['msgid']);
     }
 }