diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AnalysisController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AnalysisController.java new file mode 100644 index 00000000..7a6e44f7 --- /dev/null +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AnalysisController.java @@ -0,0 +1,29 @@ +package com.nflg.mobilebroken.admin.controller; + +import com.nflg.mobilebroken.starter.service.impl.APPSSEManagerService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Collection; + +/** + * 统计分析相关 + */ +@RestController +@RequestMapping("/analysis") +public class AnalysisController extends ControllerBase{ + + @Resource + private APPSSEManagerService appSSEManagerService; + + /** + * 获取当前已连接SSE的客户端用户列表 + * @return 当前已连接SSE的客户端用户列表 + */ + @GetMapping("getSSEConnects") + public Collection getSSEConnects(){ + return appSSEManagerService.getUserIds(); + } +} diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/AnalysisController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/AnalysisController.java new file mode 100644 index 00000000..706fedd4 --- /dev/null +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/AnalysisController.java @@ -0,0 +1,29 @@ +package com.nflg.mobilebroken.cfs.controller; + +import com.nflg.mobilebroken.starter.service.impl.AdminSSEManagerService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Collection; + +/** + * 统计分析相关 + */ +@RestController +@RequestMapping("/analysis") +public class AnalysisController extends ControllerBase{ + + @Resource + private AdminSSEManagerService adminSSEManagerService; + + /** + * 获取当前已连接SSE的管理端用户列表 + * @return 当前已连接SSE的管理端用户列表 + */ + @GetMapping("getSSEConnects") + public Collection getSSEConnects(){ + return adminSSEManagerService.getUserIds(); + } +} \ No newline at end of file diff --git a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/SSEManagerService.java b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/SSEManagerService.java index d8bebe66..837d54a2 100644 --- a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/SSEManagerService.java +++ b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/SSEManagerService.java @@ -4,6 +4,7 @@ import com.nflg.mobilebroken.common.pojo.dto.SSEMessageDTO; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import java.io.IOException; +import java.util.Collection; public interface SSEManagerService { @@ -14,4 +15,6 @@ public interface SSEManagerService { void close(Integer userId); void shutdown(); + + Collection getUserIds(); } diff --git a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/APPSSEManagerService.java b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/APPSSEManagerService.java index 0e9fb508..a862bbb2 100644 --- a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/APPSSEManagerService.java +++ b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/APPSSEManagerService.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import java.io.IOException; +import java.util.Collection; import java.util.Map; import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; @@ -47,4 +48,9 @@ public class APPSSEManagerService extends SSEManagerBase implements SSEManagerSe public void shutdown() { shutdown(EMITTERS); } + + @Override + public Collection getUserIds() { + return EMITTERS.keySet(); + } } diff --git a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/AdminSSEManagerService.java b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/AdminSSEManagerService.java index 5adcb63f..80e1720b 100644 --- a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/AdminSSEManagerService.java +++ b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/impl/AdminSSEManagerService.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import java.io.IOException; +import java.util.Collection; import java.util.Map; import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; @@ -47,4 +48,9 @@ public class AdminSSEManagerService extends SSEManagerBase implements SSEManager public void shutdown() { shutdown(EMITTERS); } + + @Override + public Collection getUserIds() { + return EMITTERS.keySet(); + } }