public function publish($mqtt, \sskaje\mqtt\Message\PUBLISH $publish_object) { $topic = $publish_object->getTopic(); $message = $publish_object->getMessage(); if ($topic === 'sskaje/bot/login') { $this->online_agents[$message] = 1; $mqtt->publish_async('sskaje/bot/' . $message, 'Welcome, ' . $message, 1); $mqtt->publish_async('sskaje/bot/broadcast', $message . ' is online.', 1); echo "{$message} is online\n"; } else { if ($topic === 'sskaje/bot/logout') { unset($this->online_agents[$message]); $mqtt->publish_async('sskaje/bot/broadcast', $message . ' is offline.', 1); echo "{$message} is offline\n"; } else { if ($topic === 'sskaje/bot/status') { $mqtt->publish_async('sskaje/bot/broadcast', 'There are ' . count($this->online_agents) . ' agent(s) online', 1); echo "someone is querying status\n"; } } } }
public function publish(MQTT $mqtt, \sskaje\mqtt\Message\PUBLISH $publish_object) { printf("[32mI got a message[0m:(msgid=%d, QoS=%d, dup=%d, topic=%s) [32m%s[0m\n", $publish_object->getMsgID(), $publish_object->getQoS(), $publish_object->getDup(), $publish_object->getTopic(), $publish_object->getMessage()); }