MQTT ready to use

change subscription logic - now keep subscriptions independently from connecting state. No unregisters on disconnect, but resubscriptions on connect. So one-time subscription on app start and just connect() on lost connection - all subscriptions keeps
This commit is contained in:
2026-05-29 09:56:29 +03:00
parent 38d09e272c
commit afb4ae8126
3 changed files with 70 additions and 45 deletions
+11 -12
View File
@@ -64,6 +64,14 @@ int main(int argc, char * argv[]) {
PIMQTT::Client cl;
cl.setConnectTimeout(2_s);
cl.subscribe("api/v1/all/bort{A}/f",
[](const PIMQTT::MessageConst & msg) { piCout << "1" << msg.topicList() << msg.pathArguments() << msg.body().size(); });
cl.subscribe("api/v1/all/task{T}/f",
[](const PIMQTT::MessageConst & msg) { piCout << "2" << msg.topicList() << msg.pathArguments() << msg.body().size(); });
cl.subscribe("api/v1/all/*/f",
[](const PIMQTT::MessageConst & msg) { piCout << "3" << msg.topicList() << msg.pathArguments() << msg.body().size(); });
cl.subscribe("api/v1/all2/**",
[](const PIMQTT::MessageConst & msg) { piCout << "4" << msg.topicList() << msg.pathArguments() << msg.body().size(); });
CONNECTL(&cl, connected, [&cl] {
piCout << "connected";
// cl.subscribe("api/v1/plugins");
@@ -71,18 +79,6 @@ int main(int argc, char * argv[]) {
// cl.subscribe("api/v1/*/{taskID}/status");
// cl.subscribe("api/v1/bort/list");
// cl.subscribe("api/v1/all");
cl.subscribe("api/v1/all/bort{A}/f", [](const PIMQTT::MessageConst & msg) {
piCout << "1" << msg.topicList() << msg.pathArguments() << msg.body().size();
});
cl.subscribe("api/v1/all/task{T}/f", [](const PIMQTT::MessageConst & msg) {
piCout << "2" << msg.topicList() << msg.pathArguments() << msg.body().size();
});
cl.subscribe("api/v1/all/*/f", [](const PIMQTT::MessageConst & msg) {
piCout << "3" << msg.topicList() << msg.pathArguments() << msg.body().size();
});
cl.subscribe("api/v1/all2/**", [](const PIMQTT::MessageConst & msg) {
piCout << "4" << msg.topicList() << msg.pathArguments() << msg.body().size();
});
// cl.subscribe("/zigbee2mqtt");
// cl.subscribe("/zigbee2mqtt/+/status/");
// cl.subscribe("/zigbee2mqtt/*/status/");
@@ -103,6 +99,9 @@ int main(int argc, char * argv[]) {
cl.connect("localhost", "PIP");
piSleep(6.);
cl.unsubscribeAll();
kbd.enableExitCapture('Q');
WAIT_FOR_EXIT