This is an automated email from the ASF dual-hosted git repository.
xiaoyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new be37737 feat mqtt protocol (#2351)
be37737 is described below
commit be377377e1dd2da90e064f63ced4243ff45c5711
Author: Sinsy <[email protected]>
AuthorDate: Mon Nov 15 14:40:08 2021 +0800
feat mqtt protocol (#2351)
---
shenyu-protocol/pom.xml | 1 +
shenyu-protocol/{ => shenyu-protocol-mqtt}/pom.xml | 20 ++--
.../shenyu/protocol/mqtt/AbstractMessageType.java | 114 +++++++++++++++++++++
.../shenyu/protocol/mqtt/BootstrapServer.java | 40 ++++++++
.../org/apache/shenyu/protocol/mqtt/Connect.java | 31 ++++++
.../apache/shenyu/protocol/mqtt/MessageType.java | 24 +++++
.../shenyu/protocol/mqtt/MqttBootstrapServer.java | 39 +++++++
.../org/apache/shenyu/protocol/mqtt/MqttEnv.java | 32 ++++++
.../apache/shenyu/protocol/mqtt/MqttFactory.java | 76 ++++++++++++++
.../org/apache/shenyu/protocol/mqtt/PubAck.java | 31 ++++++
.../org/apache/shenyu/protocol/mqtt/Publish.java | 32 ++++++
.../org/apache/shenyu/protocol/mqtt/Subscribe.java | 32 ++++++
.../apache/shenyu/protocol/mqtt/Unsubscribe.java | 32 ++++++
13 files changed, 497 insertions(+), 7 deletions(-)
diff --git a/shenyu-protocol/pom.xml b/shenyu-protocol/pom.xml
index 61f720e..1677bde 100644
--- a/shenyu-protocol/pom.xml
+++ b/shenyu-protocol/pom.xml
@@ -28,5 +28,6 @@
<modules>
<module>shenyu-protocol-grpc</module>
+ <module>shenyu-protocol-mqtt</module>
</modules>
</project>
\ No newline at end of file
diff --git a/shenyu-protocol/pom.xml
b/shenyu-protocol/shenyu-protocol-mqtt/pom.xml
similarity index 66%
copy from shenyu-protocol/pom.xml
copy to shenyu-protocol/shenyu-protocol-mqtt/pom.xml
index 61f720e..b35edc1 100644
--- a/shenyu-protocol/pom.xml
+++ b/shenyu-protocol/shenyu-protocol-mqtt/pom.xml
@@ -16,17 +16,23 @@
~ limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
+ <artifactId>shenyu-protocol</artifactId>
<groupId>org.apache.shenyu</groupId>
- <artifactId>shenyu</artifactId>
<version>2.4.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>shenyu-protocol</artifactId>
- <packaging>pom</packaging>
- <modules>
- <module>shenyu-protocol-grpc</module>
- </modules>
+ <artifactId>shenyu-protocol-mqtt</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-all</artifactId>
+ </dependency>
+ </dependencies>
+
</project>
\ No newline at end of file
diff --git
a/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/AbstractMessageType.java
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/AbstractMessageType.java
new file mode 100644
index 0000000..9b93881
--- /dev/null
+++
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/AbstractMessageType.java
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.protocol.mqtt;
+
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.handler.codec.mqtt.MqttPublishMessage;
+import io.netty.handler.codec.mqtt.MqttSubscribeMessage;
+import io.netty.handler.codec.mqtt.MqttUnsubscribeMessage;
+
+/**
+ * Command messages.
+ */
+public abstract class AbstractMessageType {
+
+ private volatile boolean connected;
+
+ /**
+ * Client request to connect to Server.
+ * @param ctx ChannelHandlerContext
+ */
+ public void connect(final ChannelHandlerContext ctx) {
+
+ }
+
+ /**
+ * Publish message.
+ * @param ctx ctx
+ * @param msg msg
+ */
+ public void publish(final ChannelHandlerContext ctx, final
MqttPublishMessage msg) {
+
+ }
+
+ /**
+ * Publish Acknowledgment.
+ * @param ctx ctx
+ */
+ public void pubAck(final ChannelHandlerContext ctx) {
+
+ }
+
+ /**
+ * Client Subscribe request.
+ * @param ctx ctx
+ * @param msg msg
+ */
+ public void subscribe(final ChannelHandlerContext ctx, final
MqttSubscribeMessage msg) {
+
+ }
+
+ /**
+ * Client Unsubscribe request.
+ * @param ctx ctx
+ * @param msg msg
+ */
+ public void unsubscribe(final ChannelHandlerContext ctx, final
MqttUnsubscribeMessage msg) {
+
+ }
+
+ /**
+ * PING Request.
+ * @param ctx ctx
+ */
+ public void pingReq(final ChannelHandlerContext ctx) {
+
+ }
+
+ /**
+ * PING Response.
+ * @param ctx ctx
+ */
+ public void pingResp(final ChannelHandlerContext ctx) {
+
+ }
+
+ /**
+ * Client is Disconnecting.
+ * @param ctx ctx
+ */
+ public void disconnect(final ChannelHandlerContext ctx) {
+
+ }
+
+ /**
+ * isConnected.
+ * @return connected
+ */
+ public boolean isConnected() {
+ return connected;
+ }
+
+ /**
+ * set connected.
+ * @param connected connected
+ */
+ public void setConnected(final boolean connected) {
+ this.connected = connected;
+ }
+}
diff --git
a/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/BootstrapServer.java
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/BootstrapServer.java
new file mode 100644
index 0000000..8edaebf
--- /dev/null
+++
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/BootstrapServer.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.protocol.mqtt;
+
+/**
+ * mqtt life cycle.
+ */
+public interface BootstrapServer {
+
+ /**
+ * init.
+ */
+ void init();
+
+ /**
+ * start.
+ */
+ void start();
+
+ /**
+ * shutdown.
+ */
+ void shutdown();
+
+}
diff --git
a/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Connect.java
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Connect.java
new file mode 100644
index 0000000..ff84d75
--- /dev/null
+++
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Connect.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.protocol.mqtt;
+
+import io.netty.channel.ChannelHandlerContext;
+
+/**
+ * Client requests a connection to a server.
+ */
+public class Connect extends MessageType {
+
+ @Override
+ public void connect(final ChannelHandlerContext ctx) {
+
+ }
+}
diff --git
a/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MessageType.java
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MessageType.java
new file mode 100644
index 0000000..f31cfbc
--- /dev/null
+++
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MessageType.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.protocol.mqtt;
+
+/**
+ * Command messages.
+ */
+public class MessageType extends AbstractMessageType {
+}
diff --git
a/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MqttBootstrapServer.java
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MqttBootstrapServer.java
new file mode 100644
index 0000000..92601aa
--- /dev/null
+++
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MqttBootstrapServer.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.protocol.mqtt;
+
+/**
+ * mqtt server.
+ */
+public class MqttBootstrapServer implements BootstrapServer {
+
+ @Override
+ public void init() {
+
+ }
+
+ @Override
+ public void start() {
+
+ }
+
+ @Override
+ public void shutdown() {
+
+ }
+}
diff --git
a/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MqttEnv.java
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MqttEnv.java
new file mode 100644
index 0000000..f065c1a
--- /dev/null
+++
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MqttEnv.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.protocol.mqtt;
+
+/**
+ * mqtt env.
+ */
+public class MqttEnv {
+
+ private int port;
+
+ private int bossGroupThreadCount;
+
+ private int maxPayloadSize;
+
+ private int workerGroupThreadCount;
+}
diff --git
a/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MqttFactory.java
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MqttFactory.java
new file mode 100644
index 0000000..71e2f17
--- /dev/null
+++
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MqttFactory.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.protocol.mqtt;
+
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.handler.codec.mqtt.MqttMessage;
+import io.netty.handler.codec.mqtt.MqttPublishMessage;
+import io.netty.handler.codec.mqtt.MqttSubscribeMessage;
+import io.netty.handler.codec.mqtt.MqttUnsubscribeMessage;
+
+/**
+ * mqtt factory.
+ */
+public class MqttFactory {
+
+ private final MessageType messageType = new MessageType();
+
+ private final MqttMessage msg;
+
+ private final ChannelHandlerContext ctx;
+
+ public MqttFactory(final MqttMessage msg, final ChannelHandlerContext ctx)
{
+ this.msg = msg;
+ this.ctx = ctx;
+ }
+
+ /**
+ * connect.
+ */
+ public void connect() {
+
+ if (msg.fixedHeader() == null) {
+ return;
+ }
+ switch (msg.fixedHeader().messageType()) {
+
+ case CONNECT:
+ messageType.connect(ctx);
+ break;
+
+ case PUBLISH:
+ messageType.publish(ctx, (MqttPublishMessage) msg);
+ break;
+ case PUBACK:
+ break;
+ case SUBSCRIBE:
+ messageType.subscribe(ctx, (MqttSubscribeMessage) msg);
+ break;
+ case UNSUBSCRIBE:
+ messageType.unsubscribe(ctx, (MqttUnsubscribeMessage) msg);
+ break;
+ case PINGREQ:
+ messageType.pingReq(ctx);
+ break;
+ case DISCONNECT:
+ break;
+ default:
+ break;
+ }
+ }
+}
diff --git
a/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/PubAck.java
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/PubAck.java
new file mode 100644
index 0000000..38f3f46
--- /dev/null
+++
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/PubAck.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.protocol.mqtt;
+
+import io.netty.channel.ChannelHandlerContext;
+
+/**
+ * Publish acknowledgment.
+ */
+public class PubAck extends MessageType {
+
+ @Override
+ public void pubAck(final ChannelHandlerContext ctx) {
+
+ }
+}
diff --git
a/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Publish.java
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Publish.java
new file mode 100644
index 0000000..07bd334
--- /dev/null
+++
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Publish.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.protocol.mqtt;
+
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.handler.codec.mqtt.MqttPublishMessage;
+
+/**
+ * Publish message.
+ */
+public class Publish extends MessageType {
+
+ @Override
+ public void publish(final ChannelHandlerContext ctx, final
MqttPublishMessage msg) {
+
+ }
+}
diff --git
a/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Subscribe.java
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Subscribe.java
new file mode 100644
index 0000000..188d17c
--- /dev/null
+++
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Subscribe.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.protocol.mqtt;
+
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.handler.codec.mqtt.MqttSubscribeMessage;
+
+/**
+ * Subscribe to named topics.
+ */
+public class Subscribe extends MessageType {
+
+ @Override
+ public void subscribe(final ChannelHandlerContext ctx, final
MqttSubscribeMessage msg) {
+
+ }
+}
diff --git
a/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Unsubscribe.java
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Unsubscribe.java
new file mode 100644
index 0000000..777ac3e
--- /dev/null
+++
b/shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Unsubscribe.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.protocol.mqtt;
+
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.handler.codec.mqtt.MqttUnsubscribeMessage;
+
+/**
+ * Unsubscribe from named topics.
+ */
+public class Unsubscribe extends MessageType {
+
+ @Override
+ public void unsubscribe(final ChannelHandlerContext ctx, final
MqttUnsubscribeMessage msg) {
+
+ }
+}