Browse Source

Merge branch 'master' of github.com:mrniko/netty-socketio

# Conflicts:
#	pom.xml
master
Nikita Koksharov 5 years ago
parent
commit
2fdc9ed9b4
  1. 7
      src/main/java/com/corundumstudio/socketio/SocketIOServer.java
  2. 3
      src/main/java/com/corundumstudio/socketio/listener/ClientListeners.java
  3. 9
      src/main/java/com/corundumstudio/socketio/listener/EventInterceptor.java
  4. 10
      src/main/java/com/corundumstudio/socketio/namespace/Namespace.java
  5. 2
      src/main/java/com/corundumstudio/socketio/protocol/Event.java

7
src/main/java/com/corundumstudio/socketio/SocketIOServer.java

@ -229,6 +229,13 @@ public class SocketIOServer implements ClientListeners {
mainNamespace.addEventListener(eventName, eventClass, listener);
}
@Override
public void addEventInterceptor(EventInterceptor eventInterceptor) {
mainNamespace.addEventInterceptor(eventInterceptor);
}
@Override
public void removeAllListeners(String eventName) {
mainNamespace.removeAllListeners(eventName);

3
src/main/java/com/corundumstudio/socketio/listener/ClientListeners.java

@ -15,12 +15,15 @@
*/
package com.corundumstudio.socketio.listener;
public interface ClientListeners {
void addMultiTypeEventListener(String eventName, MultiTypeEventListener listener, Class<?> ... eventClass);
<T> void addEventListener(String eventName, Class<T> eventClass, DataListener<T> listener);
void addEventInterceptor(EventInterceptor eventInterceptor);
void addDisconnectListener(DisconnectListener listener);
void addConnectListener(ConnectListener listener);

9
src/main/java/com/corundumstudio/socketio/listener/EventInterceptor.java

@ -0,0 +1,9 @@
package com.corundumstudio.socketio.listener;
import com.corundumstudio.socketio.AckRequest;
import com.corundumstudio.socketio.transport.NamespaceClient;
import java.util.List;
public interface EventInterceptor {
void onEvent(NamespaceClient client, String eventName, List<Object> args, AckRequest ackRequest);
}

10
src/main/java/com/corundumstudio/socketio/namespace/Namespace.java

@ -59,6 +59,7 @@ public class Namespace implements SocketIONamespace {
private final Queue<ConnectListener> connectListeners = new ConcurrentLinkedQueue<ConnectListener>();
private final Queue<DisconnectListener> disconnectListeners = new ConcurrentLinkedQueue<DisconnectListener>();
private final Queue<PingListener> pingListeners = new ConcurrentLinkedQueue<PingListener>();
private final Queue<EventInterceptor> eventInterceptors = new ConcurrentLinkedQueue<EventInterceptor>();
private final Map<UUID, SocketIOClient> allClients = PlatformDependent.newConcurrentHashMap();
private final ConcurrentMap<String, Set<UUID>> roomClients = PlatformDependent.newConcurrentHashMap();
@ -126,6 +127,11 @@ public class Namespace implements SocketIONamespace {
jsonSupport.addEventMapping(name, eventName, eventClass);
}
@Override
public void addEventInterceptor(EventInterceptor eventInterceptor) {
eventInterceptors.add(eventInterceptor);
}
@SuppressWarnings({"rawtypes", "unchecked"})
public void onEvent(NamespaceClient client, String eventName, List<Object> args, AckRequest ackRequest) {
EventEntry entry = eventListeners.get(eventName);
@ -139,6 +145,10 @@ public class Namespace implements SocketIONamespace {
Object data = getEventData(args, dataListener);
dataListener.onData(client, data, ackRequest);
}
for (EventInterceptor eventInterceptor : eventInterceptors) {
eventInterceptor.onEvent(client, eventName, args, ackRequest);
}
} catch (Exception e) {
exceptionListener.onEventException(e, args, client);
if (ackMode == AckMode.AUTO_SUCCESS_ONLY) {

2
src/main/java/com/corundumstudio/socketio/protocol/Event.java

@ -17,7 +17,7 @@ package com.corundumstudio.socketio.protocol;
import java.util.List;
class Event {
public class Event {
private String name;
private List<Object> args;

Loading…
Cancel
Save