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; }
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; }