Commit 9156ccfb68fe1b1036296adcce2cbefbe45a68d8
Committed by
GitHub
Merge pull request #1662 from yefimov-andrey/mqtt-keep-alive-fix
Added MQTT keep alive parameter
Showing
2 changed files
with
6 additions
and
1 deletions
@@ -469,6 +469,7 @@ transport: | @@ -469,6 +469,7 @@ transport: | ||
469 | boss_group_thread_count: "${NETTY_BOSS_GROUP_THREADS:1}" | 469 | boss_group_thread_count: "${NETTY_BOSS_GROUP_THREADS:1}" |
470 | worker_group_thread_count: "${NETTY_WORKER_GROUP_THREADS:12}" | 470 | worker_group_thread_count: "${NETTY_WORKER_GROUP_THREADS:12}" |
471 | max_payload_size: "${NETTY_MAX_PAYLOAD_SIZE:65536}" | 471 | max_payload_size: "${NETTY_MAX_PAYLOAD_SIZE:65536}" |
472 | + so_keep_alive: "${NETTY_SO_KEEPALIVE:true}" | ||
472 | # MQTT SSL configuration | 473 | # MQTT SSL configuration |
473 | ssl: | 474 | ssl: |
474 | # Enable/disable SSL support | 475 | # Enable/disable SSL support |
@@ -17,6 +17,7 @@ package org.thingsboard.server.transport.mqtt; | @@ -17,6 +17,7 @@ package org.thingsboard.server.transport.mqtt; | ||
17 | 17 | ||
18 | import io.netty.bootstrap.ServerBootstrap; | 18 | import io.netty.bootstrap.ServerBootstrap; |
19 | import io.netty.channel.Channel; | 19 | import io.netty.channel.Channel; |
20 | +import io.netty.channel.ChannelOption; | ||
20 | import io.netty.channel.EventLoopGroup; | 21 | import io.netty.channel.EventLoopGroup; |
21 | import io.netty.channel.nio.NioEventLoopGroup; | 22 | import io.netty.channel.nio.NioEventLoopGroup; |
22 | import io.netty.channel.socket.nio.NioServerSocketChannel; | 23 | import io.netty.channel.socket.nio.NioServerSocketChannel; |
@@ -50,6 +51,8 @@ public class MqttTransportService { | @@ -50,6 +51,8 @@ public class MqttTransportService { | ||
50 | private Integer bossGroupThreadCount; | 51 | private Integer bossGroupThreadCount; |
51 | @Value("${transport.mqtt.netty.worker_group_thread_count}") | 52 | @Value("${transport.mqtt.netty.worker_group_thread_count}") |
52 | private Integer workerGroupThreadCount; | 53 | private Integer workerGroupThreadCount; |
54 | + @Value("${transport.mqtt.netty.so_keep_alive}") | ||
55 | + private boolean keepAlive; | ||
53 | 56 | ||
54 | @Autowired | 57 | @Autowired |
55 | private MqttTransportContext context; | 58 | private MqttTransportContext context; |
@@ -69,7 +72,8 @@ public class MqttTransportService { | @@ -69,7 +72,8 @@ public class MqttTransportService { | ||
69 | ServerBootstrap b = new ServerBootstrap(); | 72 | ServerBootstrap b = new ServerBootstrap(); |
70 | b.group(bossGroup, workerGroup) | 73 | b.group(bossGroup, workerGroup) |
71 | .channel(NioServerSocketChannel.class) | 74 | .channel(NioServerSocketChannel.class) |
72 | - .childHandler(new MqttTransportServerInitializer(context)); | 75 | + .childHandler(new MqttTransportServerInitializer(context)) |
76 | + .childOption(ChannelOption.SO_KEEPALIVE, keepAlive); | ||
73 | 77 | ||
74 | serverChannel = b.bind(host, port).sync().channel(); | 78 | serverChannel = b.bind(host, port).sync().channel(); |
75 | log.info("Mqtt transport started!"); | 79 | log.info("Mqtt transport started!"); |