# NAME Net::MQTT::Simple::One\_Shot\_Loader - Perl package to add one\_shot method to Net::MQTT::Simple # SYNOPSIS require Net::MQTT::Simple::One_Shot_Loader; use Net::MQTT::Simple; #or Net::MQTT::Simple::SSL my $mqtt = Net::MQTT::Simple->new($host); my $obj = $mqtt->one_shot($topic_sub, $topic_pub, $message_pub, $timeout_seconds); #isa Net::MQTT::Simple::One_Shot_Loader::Response my $value = $obj->message; # DESCRIPTION This package loads the `one_shot` method into the [Net::MQTT::Simple](https://metacpan.org/pod/Net::MQTT::Simple) name space to provide a well tested remote procedure call (RPC) via MQTT. Many IoT devices only support MQTT as a protocol so, in order to query state or settings these properties need to be requested by sending a message on one queue and receiving a response on another queue. Due to the way [Net::MQTT::Simple::SSL](https://metacpan.org/pod/Net::MQTT::Simple::SSL) was implemented as a super class of [Net::MQTT::Simple](https://metacpan.org/pod/Net::MQTT::Simple) and since the author of [Net::MQTT::Simple](https://metacpan.org/pod/Net::MQTT::Simple) did not want to implement this method in his package (ref [GitHub](https://github.com/Juerd/Net-MQTT-Simple/pull/22#pullrequestreview-1340685240)), we implemented this method in a method loader package. # METHODS ## one\_shot Returns an object representing the first message that matches the subscription topic after publishing the message on the message topic. Returns an object with the error set to a true value on error like timeout. my $response = $mqtt->one_shot($topic_sub, $topic_pub, $message_pub, $timeout_seconds); if (not $response->error) { my $message = $response->message; } # SEE ALSO [Net::MQTT::Simple](https://metacpan.org/pod/Net::MQTT::Simple) # AUTHOR Michael R. Davis # COPYRIGHT AND LICENSE MIT License Copyright (c) 2023 Michael R. Davis