diff --git a/src/main/java/com/corundumstudio/socketio/SocketIOServer.java b/src/main/java/com/corundumstudio/socketio/SocketIOServer.java index 09cc7b0..329d8ec 100644 --- a/src/main/java/com/corundumstudio/socketio/SocketIOServer.java +++ b/src/main/java/com/corundumstudio/socketio/SocketIOServer.java @@ -231,6 +231,11 @@ public class SocketIOServer implements ClientListeners { mainNamespace.addEventListener(eventName, eventClass, listener); } + @Override + public void removeAllListeners(String eventName) { + mainNamespace.removeAllListeners(eventName); + } + @Override public void addDisconnectListener(DisconnectListener listener) { mainNamespace.addDisconnectListener(listener); @@ -245,7 +250,7 @@ public class SocketIOServer implements ClientListeners { public void addListeners(Object listeners) { mainNamespace.addListeners(listeners); } - + @Override public void addListeners(Object listeners, Class listenersClass) { mainNamespace.addListeners(listeners, listenersClass); diff --git a/src/main/java/com/corundumstudio/socketio/listener/ClientListeners.java b/src/main/java/com/corundumstudio/socketio/listener/ClientListeners.java index 89c05f7..556d645 100644 --- a/src/main/java/com/corundumstudio/socketio/listener/ClientListeners.java +++ b/src/main/java/com/corundumstudio/socketio/listener/ClientListeners.java @@ -29,4 +29,6 @@ public interface ClientListeners { void addListeners(Object listeners, Class listenersClass); + void removeAllListeners(String eventName); + } diff --git a/src/main/java/com/corundumstudio/socketio/namespace/Namespace.java b/src/main/java/com/corundumstudio/socketio/namespace/Namespace.java index e9cf680..e288f6f 100644 --- a/src/main/java/com/corundumstudio/socketio/namespace/Namespace.java +++ b/src/main/java/com/corundumstudio/socketio/namespace/Namespace.java @@ -15,8 +15,6 @@ */ package com.corundumstudio.socketio.namespace; -import io.netty.util.internal.PlatformDependent; - import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -45,10 +43,11 @@ import com.corundumstudio.socketio.protocol.JsonSupport; import com.corundumstudio.socketio.protocol.Packet; import com.corundumstudio.socketio.store.StoreFactory; import com.corundumstudio.socketio.store.pubsub.JoinLeaveMessage; -import com.corundumstudio.socketio.store.pubsub.PubSubStore; import com.corundumstudio.socketio.store.pubsub.PubSubType; import com.corundumstudio.socketio.transport.NamespaceClient; +import io.netty.util.internal.PlatformDependent; + /** * Hub object for all clients in one namespace. * Namespace shares by different namespace-clients. @@ -106,6 +105,14 @@ public class Namespace implements SocketIONamespace { entry.addListener(listener); jsonSupport.addEventMapping(name, eventName, eventClass); } + + @Override + public void removeAllListeners(String eventName) { + EventEntry entry = eventListeners.remove(eventName); + if (entry != null) { + jsonSupport.removeEventMapping(name, eventName); + } + } @Override @SuppressWarnings({"unchecked", "rawtypes"})