From d5fecbaff3d8e37a819d8cef5623a3d75a6c1eea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A1=E4=B8=96=E7=99=BD=E7=8E=89?= Date: Mon, 11 Jun 2018 19:05:28 +0800 Subject: [PATCH 1/4] fix MqttServer Duplicate handler name: idle When The NetServerOptions set the ' IdleTimeout'. The connection will add the name 'idle' handler before. And the mqttserver will add the same name handlee too. --- src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java b/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java index 4f0d196b..6850c6b2 100644 --- a/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java +++ b/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java @@ -138,7 +138,7 @@ private void initChannel(ChannelPipeline pipeline) { } // adding the idle state handler for timeout on CONNECT packet - pipeline.addBefore("handler", "idle", new IdleStateHandler(this.options.timeoutOnConnect(), 0, 0)); + pipeline.addBefore("handler", "mqttIdle", new IdleStateHandler(this.options.timeoutOnConnect(), 0, 0)); pipeline.addBefore("handler", "timeoutOnConnect", new ChannelDuplexHandler() { @Override From 93c88e121104788522142cb915c573006cde6c92 Mon Sep 17 00:00:00 2001 From: ???? Date: Fri, 15 Jun 2018 11:46:31 +0800 Subject: [PATCH 2/4] Override IdleTimeout to fix Error --- .../java/io/vertx/mqtt/MqttServerOptions.java | 19 +++++++++++++++++++ .../io/vertx/mqtt/impl/MqttServerImpl.java | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/vertx/mqtt/MqttServerOptions.java b/src/main/java/io/vertx/mqtt/MqttServerOptions.java index 30795477..8c4d5c51 100644 --- a/src/main/java/io/vertx/mqtt/MqttServerOptions.java +++ b/src/main/java/io/vertx/mqtt/MqttServerOptions.java @@ -252,10 +252,29 @@ public MqttServerOptions setTimeoutOnConnect(int timeoutOnConnect) { return this; } + /** + * Do the same thing as {@link MqttClientOptions#setKeepAliveTimeSeconds(int)}. Use it instead. + */ + @Deprecated + @Override + public MqttServerOptions setIdleTimeout(int idleTimeout) { + super.setIdleTimeout(0); + return setTimeoutOnConnect(idleTimeout); + } + + /** * @return timeout on CONNECT before closing connection */ public int timeoutOnConnect() { return this.timeoutOnConnect; } + + /** + * @return the TCP idle timeout, in seconds,In MqttServer the Parameter should be 0, it will use timeoutOnConnect. + */ + @Override + public int getIdleTimeout() { + return 0; + } } diff --git a/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java b/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java index 6850c6b2..317a8fa3 100644 --- a/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java +++ b/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java @@ -138,7 +138,7 @@ private void initChannel(ChannelPipeline pipeline) { } // adding the idle state handler for timeout on CONNECT packet - pipeline.addBefore("handler", "mqttIdle", new IdleStateHandler(this.options.timeoutOnConnect(), 0, 0)); + pipeline.addBefore("handler", "idle", new IdleStateHandler(this.options.timeoutOnConnect(), 0, 0)); pipeline.addBefore("handler", "timeoutOnConnect", new ChannelDuplexHandler() { @Override @@ -154,5 +154,6 @@ public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exc } } }); + } } From 0ca827172cf7073d00155ca00c605f040f5d6e11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A1=E4=B8=96=E7=99=BD=E7=8E=89?= Date: Fri, 15 Jun 2018 16:29:58 +0800 Subject: [PATCH 3/4] fix commit --- src/main/java/io/vertx/mqtt/MqttServerOptions.java | 10 +--------- src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java | 1 - 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/main/java/io/vertx/mqtt/MqttServerOptions.java b/src/main/java/io/vertx/mqtt/MqttServerOptions.java index 8c4d5c51..0f29f737 100644 --- a/src/main/java/io/vertx/mqtt/MqttServerOptions.java +++ b/src/main/java/io/vertx/mqtt/MqttServerOptions.java @@ -253,12 +253,11 @@ public MqttServerOptions setTimeoutOnConnect(int timeoutOnConnect) { } /** - * Do the same thing as {@link MqttClientOptions#setKeepAliveTimeSeconds(int)}. Use it instead. + * Do the same thing as {@link MqttServerOptions#setTimeoutOnConnect(int)}. Use it instead. */ @Deprecated @Override public MqttServerOptions setIdleTimeout(int idleTimeout) { - super.setIdleTimeout(0); return setTimeoutOnConnect(idleTimeout); } @@ -270,11 +269,4 @@ public int timeoutOnConnect() { return this.timeoutOnConnect; } - /** - * @return the TCP idle timeout, in seconds,In MqttServer the Parameter should be 0, it will use timeoutOnConnect. - */ - @Override - public int getIdleTimeout() { - return 0; - } } diff --git a/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java b/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java index 317a8fa3..4f0d196b 100644 --- a/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java +++ b/src/main/java/io/vertx/mqtt/impl/MqttServerImpl.java @@ -154,6 +154,5 @@ public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exc } } }); - } } From 0ae1f378625a5e40194eca01e80697d62bd881d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A1=E4=B8=96=E7=99=BD=E7=8E=89?= Date: Fri, 15 Jun 2018 20:47:54 +0800 Subject: [PATCH 4/4] rm space --- src/main/java/io/vertx/mqtt/MqttServerOptions.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/io/vertx/mqtt/MqttServerOptions.java b/src/main/java/io/vertx/mqtt/MqttServerOptions.java index 0f29f737..c2df96fc 100644 --- a/src/main/java/io/vertx/mqtt/MqttServerOptions.java +++ b/src/main/java/io/vertx/mqtt/MqttServerOptions.java @@ -260,8 +260,7 @@ public MqttServerOptions setTimeoutOnConnect(int timeoutOnConnect) { public MqttServerOptions setIdleTimeout(int idleTimeout) { return setTimeoutOnConnect(idleTimeout); } - - + /** * @return timeout on CONNECT before closing connection */