diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/config/SecurityConfig.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/config/SecurityConfig.java
index 54d938a..8f417bd 100644
--- a/xymanager_common/src/main/java/com/shxy/xymanager_common/config/SecurityConfig.java
+++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/config/SecurityConfig.java
@@ -60,6 +60,7 @@ public class SecurityConfig {
urlWhiteList.add("/xymanager/swagger-ui.html");
urlWhiteList.add("/xymanager/swagger-resources/**");
urlWhiteList.add("/xymanager/*/api-docs");
+ urlWhiteList.add("/xymanager/websocket/**");
urlWhiteList.add("/test/**");
urlWhiteList.add("/error");
urlWhiteList.add("/test/**");
diff --git a/xymanager_framework/pom.xml b/xymanager_framework/pom.xml
index 72171e2..f9d693c 100644
--- a/xymanager_framework/pom.xml
+++ b/xymanager_framework/pom.xml
@@ -40,10 +40,6 @@
ch.qos.logback
logback-classic
-
- org.springframework.boot
- spring-boot-starter-tomcat
-
@@ -51,6 +47,10 @@
org.springframework.boot
spring-boot-starter-aop
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/WebSocketConfig.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/WebSocketConfig.java
new file mode 100644
index 0000000..bcbf951
--- /dev/null
+++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/WebSocketConfig.java
@@ -0,0 +1,20 @@
+package com.shxy.xymanager_framework.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.socket.server.standard.ServerEndpointExporter;
+
+@Configuration
+public class WebSocketConfig {
+ /**
+ * ServerEndpointExporter 作用
+ *
+ * 这个Bean会自动注册使用@ServerEndpoint注解声明的websocket endpoint
+ *
+ * @return ServerEndpointExporter
+ */
+ @Bean
+ public ServerEndpointExporter serverEndpointExporter() {
+ return new ServerEndpointExporter();
+ }
+}
diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/socket/WebSocketServer.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/socket/WebSocketServer.java
new file mode 100644
index 0000000..8bb7da3
--- /dev/null
+++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/socket/WebSocketServer.java
@@ -0,0 +1,63 @@
+package com.shxy.xymanager_framework.socket;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.*;
+import javax.websocket.server.ServerEndpoint;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+@ServerEndpoint(value = "/websocket")
+@Component
+@Slf4j
+public class WebSocketServer {
+
+ private static List sessionPools = new ArrayList<>();
+
+ @OnOpen
+ public void onOpen(Session session) {
+ sessionPools.add(session);
+ log.info("当前socket连接数" + sessionPools.size());
+ }
+
+ @OnClose
+ public void onClose(Session session) {
+ sessionPools.remove(session);
+ log.info("剩余socket连接数" + sessionPools.size());
+ }
+
+ public void sendMessage(String message) {
+ Iterator it = sessionPools.listIterator();
+ while (it.hasNext()) {
+ Session session = it.next();
+ try {
+ session.getBasicRemote().sendText(message);
+ } catch (IOException ignore) {
+ }
+ }
+ }
+
+ //收到客户端信息
+ @OnMessage
+ public void onMessage(Session session, String message) {
+ try {
+ if (!"1".equals(message)) {
+ message = message.replaceAll("吗", "")
+ .replaceAll("你", "我")
+ .replaceAll("?", "!")
+ .replaceAll("\\?", "!");
+ session.getBasicRemote().sendText(message);
+ }
+ } catch (IOException ignore) {
+ }
+ }
+
+ //错误时调用
+ @OnError
+ public void onError(Session session, Throwable throwable) {
+ }
+
+}
diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/timeTask/MntnCheckTask.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/timeTask/MntnCheckTask.java
index 88c5f25..054b561 100644
--- a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/timeTask/MntnCheckTask.java
+++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/timeTask/MntnCheckTask.java
@@ -4,6 +4,7 @@ import com.shxy.xymanager_common.entity.MntnRawReportsExample;
import com.shxy.xymanager_common.entity.Terminals;
import com.shxy.xymanager_common.util.DingTalkPushUtil;
import com.shxy.xymanager_dao.dao.MntnRawReportsMapper;
+import com.shxy.xymanager_framework.socket.WebSocketServer;
import com.shxy.xymanager_service.service.CacheService;
import com.shxy.xymanager_service.service.NewCacheService;
import lombok.extern.slf4j.Slf4j;
@@ -33,6 +34,8 @@ public class MntnCheckTask {
NewCacheService newCacheService;
@Autowired
private CacheService cacheService;
+ @Resource
+ WebSocketServer webSocketServer;
private int shutdown = 0;
private List alertList = new ArrayList<>();
@@ -52,6 +55,7 @@ public class MntnCheckTask {
if (shutdown == 0 && alertList.size() > 0) {
String str = alertList.get(0);
alertList.remove(0);
+ webSocketServer.sendMessage(str);
DingTalkPushUtil.pushText(str);
}
}