From 3c04a28be863b8c4fd9100b4c428567483671ce4 Mon Sep 17 00:00:00 2001 From: Hylke van der Schaaf Date: Fri, 3 Jun 2022 10:09:19 +0200 Subject: [PATCH] Added new configuration settings of moquette --- .../ilt/frostserver/mqtt/moquette/MoquetteMqttServer.java | 8 ++++++++ docs/settings/settings.md | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/FROST-Server.MQTT.Moquette/src/main/java/de/fraunhofer/iosb/ilt/frostserver/mqtt/moquette/MoquetteMqttServer.java b/FROST-Server.MQTT.Moquette/src/main/java/de/fraunhofer/iosb/ilt/frostserver/mqtt/moquette/MoquetteMqttServer.java index d1f8d109d..fa952dd12 100644 --- a/FROST-Server.MQTT.Moquette/src/main/java/de/fraunhofer/iosb/ilt/frostserver/mqtt/moquette/MoquetteMqttServer.java +++ b/FROST-Server.MQTT.Moquette/src/main/java/de/fraunhofer/iosb/ilt/frostserver/mqtt/moquette/MoquetteMqttServer.java @@ -85,6 +85,11 @@ public class MoquetteMqttServer implements MqttServer, ConfigDefaults { public static final String TAG_SSL_WEBSOCKET_PORT = "secureWebsocketPort"; @DefaultValue("memory") public static final String TAG_PERSISTENT_STORE_TYPE = "persistentStoreType"; + @DefaultValueInt(1024) + public static final String TAG_SESSION_QUEUE_SIZE = BrokerConstants.SESSION_QUEUE_SIZE; + @DefaultValueInt(BrokerConstants.DEFAULT_SESSION_TIMEOUT_SECONDS) + public static final String TAG_SESSION_TIMEOUT_SECONDS = BrokerConstants.SESSION_TIMEOUT_SECONDS_NAME; + private static final String VALUE_STORE_TYPE_H2 = "h2"; @@ -181,6 +186,9 @@ public void start() { config.setProperty(BrokerConstants.HOST_PROPERTY_NAME, mqttSettings.getHost()); config.setProperty(BrokerConstants.ALLOW_ANONYMOUS_PROPERTY_NAME, Boolean.TRUE.toString()); + config.setProperty(BrokerConstants.SESSION_QUEUE_SIZE, customSettings.get(TAG_SESSION_QUEUE_SIZE, getClass())); + config.setProperty(BrokerConstants.SESSION_TIMEOUT_SECONDS_NAME, customSettings.get(TAG_SESSION_TIMEOUT_SECONDS, getClass())); + final String nettyMaxMessageSize = customSettings.get(BrokerConstants.NETTY_MAX_BYTES_PROPERTY_NAME, Integer.toString(BrokerConstants.DEFAULT_NETTY_MAX_BYTES_IN_MESSAGE)); config.setProperty(BrokerConstants.NETTY_MAX_BYTES_PROPERTY_NAME, nettyMaxMessageSize); diff --git a/docs/settings/settings.md b/docs/settings/settings.md index b51dee6d9..15e93ca55 100644 --- a/docs/settings/settings.md +++ b/docs/settings/settings.md @@ -133,6 +133,12 @@ These are settings for the MQTT package. * **mqtt.persistentStoreType:** The way the MQTT server keeps track of subscriptions, either in-memory (`memory`) or using an H2 database (`h2`). Default: `memory`. +* **mqtt.session_queue_size:** + The size of the internal queue the mqtt broker uses per CPU core. + Default: `1024`. +* **mqtt.session_timeout_seconds:** + The maximum lifetime of disconnected sessions, in seconds. + Default: `3600`. * **mqtt.maxInFlight:** The maximum number of "in-flight" messages to allow when sending notifications. * **mqtt.netty.mqtt.message_size:**