From f6d1d52dacb0461727510ca6e5b69a9188abe74e Mon Sep 17 00:00:00 2001 From: ashone <1700117625@qq.com> Date: Thu, 7 Sep 2023 21:00:08 +0800 Subject: [PATCH] Adds an event listener to the namespace specified by the annotation --- .../socketio/annotation/OnNamespace.java | 19 +++++++++++++++++++ .../annotation/SpringAnnotationScanner.java | 8 +++++++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/corundumstudio/socketio/annotation/OnNamespace.java diff --git a/src/main/java/com/corundumstudio/socketio/annotation/OnNamespace.java b/src/main/java/com/corundumstudio/socketio/annotation/OnNamespace.java new file mode 100644 index 000000000..50c8d6e68 --- /dev/null +++ b/src/main/java/com/corundumstudio/socketio/annotation/OnNamespace.java @@ -0,0 +1,19 @@ +package com.corundumstudio.socketio.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * @author ashone + *

+ * desc + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface OnNamespace { + + String value(); + +} diff --git a/src/main/java/com/corundumstudio/socketio/annotation/SpringAnnotationScanner.java b/src/main/java/com/corundumstudio/socketio/annotation/SpringAnnotationScanner.java index b87298f73..90095be50 100644 --- a/src/main/java/com/corundumstudio/socketio/annotation/SpringAnnotationScanner.java +++ b/src/main/java/com/corundumstudio/socketio/annotation/SpringAnnotationScanner.java @@ -54,7 +54,13 @@ public SpringAnnotationScanner(SocketIOServer socketIOServer) { @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (originalBeanClass != null) { - socketIOServer.addListeners(originalBean, originalBeanClass); + if(bean.getClass().isAnnotationPresent(OnNamespace.class)){ + String namespace=bean.getClass().getAnnotation(OnNamespace.class).value(); + socketIOServer.getNamespace(namespace).addListeners(originalBean,originalBeanClass); + }else { + socketIOServer.addListeners(originalBean, originalBeanClass); + + } log.info("{} bean listeners added", originalBeanName); originalBeanClass = null; originalBeanName = null;