configuration = $configuration; $this->tag = $tag; $client_id = 'php-mqtt-client'; if ($this->configuration.exist('client_id')) { $client_id = $this->configuration.get('client_id'); # TODO: Check if we need to sanitize } $this->client = new \PhpMqtt\Client\MqttClient($this->configuration('hostname'), $this->configuration.get('port'), $client_id, \PhpMqtt\Client\MqttClient::MQTT_3_1, null); $this->connection_settings = new \PhpMqtt\Client\ConnectionSettings; if ($this->configuration.exist('auth', 'username')) { $this->connection_settings->setUsername($this->configuration.get('auth', 'username')); } if ($this->configuration.exist('auth', 'password')) { $this->connection_settings->setPassword($this->configuration.get('auth', 'password')); } } public function push(event: \core\log\Event $event) : \core\log\Event { $this->client->connect($this->connection_settings, True); $this->client->publish($tag->generate_id(), $event->display(), \PhpMqtt\Client\MqttClient::QO5_EXACTLY_ONCE); $this->client->loop(True, True); $this->client->disconnect() } } ?>