Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0435b2cfb | ||
|
|
bda041417d | ||
|
|
baffda8a6d |
4
.github/workflows/aunit.yml
vendored
4
.github/workflows/aunit.yml
vendored
@@ -9,7 +9,7 @@ on: [push]
|
|||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
||||||
runs-on: ubuntu-18.04
|
runs-on: ubuntu-20.04
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
@@ -18,7 +18,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd ..
|
cd ..
|
||||||
git clone https://github.com/hsaturn/TinyConsole
|
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/AceRoutine
|
||||||
git clone https://github.com/bxparks/AUnit
|
git clone https://github.com/bxparks/AUnit
|
||||||
git clone https://github.com/bxparks/AceCommon
|
git clone https://github.com/bxparks/AceCommon
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name=TinyMqtt
|
name=TinyMqtt
|
||||||
version=0.9.11
|
version=0.9.12
|
||||||
author=Francois BIOT, HSaturn, <hsaturn@gmail.com>
|
author=Francois BIOT, HSaturn, <hsaturn@gmail.com>
|
||||||
maintainer=Francois BIOT, HSaturn, <hsaturn@gmail.com>
|
maintainer=Francois BIOT, HSaturn, <hsaturn@gmail.com>
|
||||||
sentence=A tiny broker and client library for MQTT messaging.
|
sentence=A tiny broker and client library for MQTT messaging.
|
||||||
|
|||||||
@@ -55,7 +55,10 @@ MqttClient::MqttClient(MqttBroker* local_broker, TcpClient* new_client)
|
|||||||
MqttClient::MqttClient(MqttBroker* local_broker, const std::string& id)
|
MqttClient::MqttClient(MqttBroker* local_broker, const std::string& id)
|
||||||
: local_broker(local_broker), clientId(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()
|
MqttClient::~MqttClient()
|
||||||
@@ -281,7 +284,7 @@ void MqttClient::clientAlive(uint32_t more_seconds)
|
|||||||
|
|
||||||
void MqttClient::loop()
|
void MqttClient::loop()
|
||||||
{
|
{
|
||||||
if (alive && (millis() > alive))
|
if (keep_alive && (millis() >= alive))
|
||||||
{
|
{
|
||||||
if (local_broker)
|
if (local_broker)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -40,6 +40,34 @@ test(local_client_should_unregister_when_destroyed)
|
|||||||
assertEqual(broker.clientsCount(), (size_t)0);
|
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
|
#if 0
|
||||||
test(local_connect)
|
test(local_connect)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user