From 3fec1a2ddabcb40745ee8f79c98beb6aacebdd85 Mon Sep 17 00:00:00 2001 From: nordmif Date: Mon, 15 Apr 2019 20:06:11 +0300 Subject: [PATCH] fixed mqtt keep-alive --- application/src/main/resources/thingsboard.yml | 1 + .../server/transport/mqtt/MqttTransportService.java | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 36767ca2d8..0a345e90a6 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -466,6 +466,7 @@ transport: boss_group_thread_count: "${NETTY_BOSS_GROUP_THREADS:1}" worker_group_thread_count: "${NETTY_WORKER_GROUP_THREADS:12}" max_payload_size: "${NETTY_MAX_PAYLOAD_SIZE:65536}" + so_keep_alive: "${NETTY_SO_KEEPALIVE:true}" # MQTT SSL configuration ssl: # Enable/disable SSL support diff --git a/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportService.java b/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportService.java index 752a8e6192..d7a8583a45 100644 --- a/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportService.java +++ b/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportService.java @@ -17,6 +17,7 @@ package org.thingsboard.server.transport.mqtt; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.Channel; +import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioServerSocketChannel; @@ -50,6 +51,8 @@ public class MqttTransportService { private Integer bossGroupThreadCount; @Value("${transport.mqtt.netty.worker_group_thread_count}") private Integer workerGroupThreadCount; + @Value("${transport.mqtt.netty.so_keep_alive}") + private boolean keepAlive; @Autowired private MqttTransportContext context; @@ -69,7 +72,8 @@ public class MqttTransportService { ServerBootstrap b = new ServerBootstrap(); b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) - .childHandler(new MqttTransportServerInitializer(context)); + .childHandler(new MqttTransportServerInitializer(context)) + .childOption(ChannelOption.SO_KEEPALIVE, keepAlive); serverChannel = b.bind(host, port).sync().channel(); log.info("Mqtt transport started!");