Compare commits

...

3 Commits

Author SHA1 Message Date
hsaturn
a0435b2cfb Release 0.9.12 unit test build upgrade 2023-01-03 04:33:47 +01:00
hsaturn
bda041417d Release 0.9.12 2023-01-03 04:32:14 +01:00
hsaturn
baffda8a6d MqttClient - fix local disconnect after pulish + ka 2023-01-03 04:25:26 +01:00
4 changed files with 36 additions and 5 deletions

View File

@@ -9,7 +9,7 @@ on: [push]
jobs:
build:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
@@ -18,7 +18,7 @@ jobs:
run: |
cd ..
git clone https://github.com/hsaturn/TinyConsole
git clone https://github.com/bxparks/EpoxyDuino
git clone https://github.com/hsaturn/EpoxyDuino
git clone https://github.com/bxparks/AceRoutine
git clone https://github.com/bxparks/AUnit
git clone https://github.com/bxparks/AceCommon

View File

@@ -1,5 +1,5 @@
name=TinyMqtt
version=0.9.11
version=0.9.12
author=Francois BIOT, HSaturn, <hsaturn@gmail.com>
maintainer=Francois BIOT, HSaturn, <hsaturn@gmail.com>
sentence=A tiny broker and client library for MQTT messaging.

View File

@@ -55,7 +55,10 @@ MqttClient::MqttClient(MqttBroker* local_broker, TcpClient* new_client)
MqttClient::MqttClient(MqttBroker* local_broker, const std::string& id)
: local_broker(local_broker), clientId(id)
{
if (local_broker) local_broker->addClient(this);
alive = 0;
keep_alive = 0;
if (local_broker) local_broker->addClient(this);
}
MqttClient::~MqttClient()
@@ -281,7 +284,7 @@ void MqttClient::clientAlive(uint32_t more_seconds)
void MqttClient::loop()
{
if (alive && (millis() > alive))
if (keep_alive && (millis() >= alive))
{
if (local_broker)
{

View File

@@ -40,6 +40,34 @@ test(local_client_should_unregister_when_destroyed)
assertEqual(broker.clientsCount(), (size_t)0);
}
test(local_client_do_not_disconnect_after_publishing)
{
set_millis(0);
MqttBroker broker(1883);
MqttClient client(&broker, "client");
MqttClient sender(&broker, "sender");
broker.loop();
client.subscribe("#");
client.subscribe("test");
client.setCallback(onPublish);
assertEqual(broker.clientsCount(), (size_t)2);
sender.publish("test", "value");
broker.loop();
add_seconds(60);
client.loop();
sender.loop();
broker.loop();
assertEqual(broker.clientsCount(), (size_t)2);
assertEqual(sender.connected(), true);
assertEqual(client.connected(), true);
assertEqual(published.size(), (size_t)1); // client has received something
}
#if 0
test(local_connect)
{