Пример #1
0
 private function processHeartBeat($message)
 {
     if ($message->messageSchemeIdentifier() == 'hbeat.request') {
         $this->sendHeartbeat();
         return true;
     }
     foreach ($this->devices as $key => $device) {
         if ($device->deviceName() == $message->source()) {
             if (substr($message->messageSchemeIdentifier(), -3) == 'end') {
                 log::add('xpl', 'info', 'Device removed: ' . $message->source());
                 unset($this->devices[$key]);
                 xPL::removedDeviceFromxPLNetwork($device->deviceName());
                 return true;
             } else {
                 $device->setLastHeartBeat(time());
                 $device->setHeartBeatInterval($message->bodyItem('interval'));
             }
             return true;
         }
     }
     if (substr($message->messageSchemeIdentifier(), -3) != 'app' && substr($message->messageSchemeIdentifier(), -5) != 'basic') {
         //Not a heartbeat
         return false;
     }
     $device = new xPLDevice($message->source());
     $device->setHeartBeatInterval($message->bodyItem('interval'));
     $device->setLastHeartBeat(time());
     if ($message->messageSchemeIdentifier() == 'hbeat.app') {
         $device->setAddress($message->bodyItem('remote-ip'));
         $device->setPort($message->bodyItem('port'));
     }
     $this->devices[] = $device;
     xPL::newDeviceFromxPLNetwork($message->source());
     return true;
 }
Пример #2
0
 private function processHeartBeat($message)
 {
     if ($message->messageSchemeIdentifier() == 'hbeat.request') {
         $this->sendHeartbeat();
         return true;
     }
     foreach ($this->_devices as $key => $device) {
         if ($device->deviceName() == $message->source()) {
             if (substr($message->messageSchemeIdentifier(), -3) == 'end') {
                 echo "Device removed: " . $message->source() . "\n";
                 unset($this->_devices[$key]);
                 return true;
             } else {
                 $device->setLastHeartBeat(time());
                 $device->setHeartBeatInterval($message->bodyItem('interval'));
             }
             return true;
         }
     }
     if (substr($message->messageSchemeIdentifier(), -3) != 'app' && substr($message->messageSchemeIdentifier(), -5) != 'basic') {
         //Not a heartbeat
         return false;
     }
     printf("New device: %s\n", $message->source());
     $device = new xPLDevice($message->source());
     $device->setHeartBeatInterval($message->bodyItem('interval'));
     $device->setLastHeartBeat(time());
     if ($message->messageSchemeIdentifier() == 'hbeat.app') {
         $device->setAddress($message->bodyItem('remote-ip'));
         $device->setPort($message->bodyItem('port'));
     }
     $this->_devices[] = $device;
     return true;
 }