diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 5f30a71..7730c5f 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -56,11 +56,6 @@ fastjson ${fastjson.version} - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 5f30a71..7730c5f 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -56,11 +56,6 @@ fastjson ${fastjson.version} - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - diff --git a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java deleted file mode 100644 index c3f7b05..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.casic.missiles.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.server.standard.ServerEndpointExporter; - -/** - * Web报警长链接 - * - * @author a203 - */ -@Configuration -public class WebSocketConfig { - @Bean - public ServerEndpointExporter serverEndpointExporter() { - return new ServerEndpointExporter(); - } -} diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 5f30a71..7730c5f 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -56,11 +56,6 @@ fastjson ${fastjson.version} - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - diff --git a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java deleted file mode 100644 index c3f7b05..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.casic.missiles.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.server.standard.ServerEndpointExporter; - -/** - * Web报警长链接 - * - * @author a203 - */ -@Configuration -public class WebSocketConfig { - @Bean - public ServerEndpointExporter serverEndpointExporter() { - return new ServerEndpointExporter(); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java deleted file mode 100644 index 0f5e892..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.casic.missiles.modular.system.utils; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.websocket.OnClose; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.Session; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.CopyOnWriteArraySet; - -/** - * WebSocket客户端建立连接的地址 - * - * @author a203 - */ -@Slf4j -@ServerEndpoint("/websocket/{userId}") -@Component -public class WebSocketServerEndpoint { - - private Session session; - - private static final CopyOnWriteArraySet WEB_SOCKETS = new CopyOnWriteArraySet<>(); - private static final Map SESSION_POOL = new HashMap<>(); - - @Override - public int hashCode() { - return Objects.hash(session); - } - - @OnOpen - public void onOpen(Session session, @PathParam(value = "userId") String userId) { - this.session = session; - WEB_SOCKETS.add(this); - SESSION_POOL.put(userId, session); - log.info(userId + "【websocket消息】有新的连接,总数为:" + WEB_SOCKETS.size()); - } - - @OnClose - public void onClose() { - WEB_SOCKETS.remove(this); - log.info("【websocket消息】连接断开,总数为:" + WEB_SOCKETS.size()); - } - - @OnMessage - public void onMessage(String message) { - log.info("【websocket消息】收到客户端消息:" + message); - } - - /** - * 广播群发消息 - */ - public void sendAllMessage(String message) { - for (WebSocketServerEndpoint socketHandler : WEB_SOCKETS) { - log.info("【websocket消息】广播消息:" + message); - try { - socketHandler.session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - public void sendListMessage(List userIds, String message) { - log.info("【websocket消息】列表消息:" + message); - for (String userId : userIds) { - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - } - - /** - * 给特定用户发送消息 - */ - public void sendOneMessage(String userId, String message) { - log.info("【websocket消息】单点消息:" + message); - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebSocketServerEndpoint that = (WebSocketServerEndpoint) o; - return Objects.equals(session, that.session); - } -} diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 5f30a71..7730c5f 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -56,11 +56,6 @@ fastjson ${fastjson.version} - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - diff --git a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java deleted file mode 100644 index c3f7b05..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.casic.missiles.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.server.standard.ServerEndpointExporter; - -/** - * Web报警长链接 - * - * @author a203 - */ -@Configuration -public class WebSocketConfig { - @Bean - public ServerEndpointExporter serverEndpointExporter() { - return new ServerEndpointExporter(); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java deleted file mode 100644 index 0f5e892..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.casic.missiles.modular.system.utils; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.websocket.OnClose; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.Session; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.CopyOnWriteArraySet; - -/** - * WebSocket客户端建立连接的地址 - * - * @author a203 - */ -@Slf4j -@ServerEndpoint("/websocket/{userId}") -@Component -public class WebSocketServerEndpoint { - - private Session session; - - private static final CopyOnWriteArraySet WEB_SOCKETS = new CopyOnWriteArraySet<>(); - private static final Map SESSION_POOL = new HashMap<>(); - - @Override - public int hashCode() { - return Objects.hash(session); - } - - @OnOpen - public void onOpen(Session session, @PathParam(value = "userId") String userId) { - this.session = session; - WEB_SOCKETS.add(this); - SESSION_POOL.put(userId, session); - log.info(userId + "【websocket消息】有新的连接,总数为:" + WEB_SOCKETS.size()); - } - - @OnClose - public void onClose() { - WEB_SOCKETS.remove(this); - log.info("【websocket消息】连接断开,总数为:" + WEB_SOCKETS.size()); - } - - @OnMessage - public void onMessage(String message) { - log.info("【websocket消息】收到客户端消息:" + message); - } - - /** - * 广播群发消息 - */ - public void sendAllMessage(String message) { - for (WebSocketServerEndpoint socketHandler : WEB_SOCKETS) { - log.info("【websocket消息】广播消息:" + message); - try { - socketHandler.session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - public void sendListMessage(List userIds, String message) { - log.info("【websocket消息】列表消息:" + message); - for (String userId : userIds) { - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - } - - /** - * 给特定用户发送消息 - */ - public void sendOneMessage(String userId, String message) { - log.info("【websocket消息】单点消息:" + message); - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebSocketServerEndpoint that = (WebSocketServerEndpoint) o; - return Objects.equals(session, that.session); - } -} diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml index 2c40a6a..e040627 100644 --- a/casic-server-support/pom.xml +++ b/casic-server-support/pom.xml @@ -51,6 +51,11 @@ fastjson ${fastjson.version} + + org.springframework.boot + spring-boot-starter-websocket + 2.4.5 + diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 5f30a71..7730c5f 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -56,11 +56,6 @@ fastjson ${fastjson.version} - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - diff --git a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java deleted file mode 100644 index c3f7b05..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.casic.missiles.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.server.standard.ServerEndpointExporter; - -/** - * Web报警长链接 - * - * @author a203 - */ -@Configuration -public class WebSocketConfig { - @Bean - public ServerEndpointExporter serverEndpointExporter() { - return new ServerEndpointExporter(); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java deleted file mode 100644 index 0f5e892..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.casic.missiles.modular.system.utils; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.websocket.OnClose; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.Session; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.CopyOnWriteArraySet; - -/** - * WebSocket客户端建立连接的地址 - * - * @author a203 - */ -@Slf4j -@ServerEndpoint("/websocket/{userId}") -@Component -public class WebSocketServerEndpoint { - - private Session session; - - private static final CopyOnWriteArraySet WEB_SOCKETS = new CopyOnWriteArraySet<>(); - private static final Map SESSION_POOL = new HashMap<>(); - - @Override - public int hashCode() { - return Objects.hash(session); - } - - @OnOpen - public void onOpen(Session session, @PathParam(value = "userId") String userId) { - this.session = session; - WEB_SOCKETS.add(this); - SESSION_POOL.put(userId, session); - log.info(userId + "【websocket消息】有新的连接,总数为:" + WEB_SOCKETS.size()); - } - - @OnClose - public void onClose() { - WEB_SOCKETS.remove(this); - log.info("【websocket消息】连接断开,总数为:" + WEB_SOCKETS.size()); - } - - @OnMessage - public void onMessage(String message) { - log.info("【websocket消息】收到客户端消息:" + message); - } - - /** - * 广播群发消息 - */ - public void sendAllMessage(String message) { - for (WebSocketServerEndpoint socketHandler : WEB_SOCKETS) { - log.info("【websocket消息】广播消息:" + message); - try { - socketHandler.session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - public void sendListMessage(List userIds, String message) { - log.info("【websocket消息】列表消息:" + message); - for (String userId : userIds) { - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - } - - /** - * 给特定用户发送消息 - */ - public void sendOneMessage(String userId, String message) { - log.info("【websocket消息】单点消息:" + message); - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebSocketServerEndpoint that = (WebSocketServerEndpoint) o; - return Objects.equals(session, that.session); - } -} diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml index 2c40a6a..e040627 100644 --- a/casic-server-support/pom.xml +++ b/casic-server-support/pom.xml @@ -51,6 +51,11 @@ fastjson ${fastjson.version} + + org.springframework.boot + spring-boot-starter-websocket + 2.4.5 + diff --git a/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java new file mode 100644 index 0000000..c3f7b05 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -0,0 +1,18 @@ +package com.casic.missiles.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.socket.server.standard.ServerEndpointExporter; + +/** + * Web报警长链接 + * + * @author a203 + */ +@Configuration +public class WebSocketConfig { + @Bean + public ServerEndpointExporter serverEndpointExporter() { + return new ServerEndpointExporter(); + } +} diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 5f30a71..7730c5f 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -56,11 +56,6 @@ fastjson ${fastjson.version} - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - diff --git a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java deleted file mode 100644 index c3f7b05..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.casic.missiles.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.server.standard.ServerEndpointExporter; - -/** - * Web报警长链接 - * - * @author a203 - */ -@Configuration -public class WebSocketConfig { - @Bean - public ServerEndpointExporter serverEndpointExporter() { - return new ServerEndpointExporter(); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java deleted file mode 100644 index 0f5e892..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.casic.missiles.modular.system.utils; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.websocket.OnClose; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.Session; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.CopyOnWriteArraySet; - -/** - * WebSocket客户端建立连接的地址 - * - * @author a203 - */ -@Slf4j -@ServerEndpoint("/websocket/{userId}") -@Component -public class WebSocketServerEndpoint { - - private Session session; - - private static final CopyOnWriteArraySet WEB_SOCKETS = new CopyOnWriteArraySet<>(); - private static final Map SESSION_POOL = new HashMap<>(); - - @Override - public int hashCode() { - return Objects.hash(session); - } - - @OnOpen - public void onOpen(Session session, @PathParam(value = "userId") String userId) { - this.session = session; - WEB_SOCKETS.add(this); - SESSION_POOL.put(userId, session); - log.info(userId + "【websocket消息】有新的连接,总数为:" + WEB_SOCKETS.size()); - } - - @OnClose - public void onClose() { - WEB_SOCKETS.remove(this); - log.info("【websocket消息】连接断开,总数为:" + WEB_SOCKETS.size()); - } - - @OnMessage - public void onMessage(String message) { - log.info("【websocket消息】收到客户端消息:" + message); - } - - /** - * 广播群发消息 - */ - public void sendAllMessage(String message) { - for (WebSocketServerEndpoint socketHandler : WEB_SOCKETS) { - log.info("【websocket消息】广播消息:" + message); - try { - socketHandler.session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - public void sendListMessage(List userIds, String message) { - log.info("【websocket消息】列表消息:" + message); - for (String userId : userIds) { - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - } - - /** - * 给特定用户发送消息 - */ - public void sendOneMessage(String userId, String message) { - log.info("【websocket消息】单点消息:" + message); - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebSocketServerEndpoint that = (WebSocketServerEndpoint) o; - return Objects.equals(session, that.session); - } -} diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml index 2c40a6a..e040627 100644 --- a/casic-server-support/pom.xml +++ b/casic-server-support/pom.xml @@ -51,6 +51,11 @@ fastjson ${fastjson.version} + + org.springframework.boot + spring-boot-starter-websocket + 2.4.5 + diff --git a/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java new file mode 100644 index 0000000..c3f7b05 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -0,0 +1,18 @@ +package com.casic.missiles.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.socket.server.standard.ServerEndpointExporter; + +/** + * Web报警长链接 + * + * @author a203 + */ +@Configuration +public class WebSocketConfig { + @Bean + public ServerEndpointExporter serverEndpointExporter() { + return new ServerEndpointExporter(); + } +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java new file mode 100644 index 0000000..0f5e892 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java @@ -0,0 +1,111 @@ +package com.casic.missiles.modular.system.utils; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.websocket.OnClose; +import javax.websocket.OnMessage; +import javax.websocket.OnOpen; +import javax.websocket.Session; +import javax.websocket.server.PathParam; +import javax.websocket.server.ServerEndpoint; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.CopyOnWriteArraySet; + +/** + * WebSocket客户端建立连接的地址 + * + * @author a203 + */ +@Slf4j +@ServerEndpoint("/websocket/{userId}") +@Component +public class WebSocketServerEndpoint { + + private Session session; + + private static final CopyOnWriteArraySet WEB_SOCKETS = new CopyOnWriteArraySet<>(); + private static final Map SESSION_POOL = new HashMap<>(); + + @Override + public int hashCode() { + return Objects.hash(session); + } + + @OnOpen + public void onOpen(Session session, @PathParam(value = "userId") String userId) { + this.session = session; + WEB_SOCKETS.add(this); + SESSION_POOL.put(userId, session); + log.info(userId + "【websocket消息】有新的连接,总数为:" + WEB_SOCKETS.size()); + } + + @OnClose + public void onClose() { + WEB_SOCKETS.remove(this); + log.info("【websocket消息】连接断开,总数为:" + WEB_SOCKETS.size()); + } + + @OnMessage + public void onMessage(String message) { + log.info("【websocket消息】收到客户端消息:" + message); + } + + /** + * 广播群发消息 + */ + public void sendAllMessage(String message) { + for (WebSocketServerEndpoint socketHandler : WEB_SOCKETS) { + log.info("【websocket消息】广播消息:" + message); + try { + socketHandler.session.getAsyncRemote().sendText(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public void sendListMessage(List userIds, String message) { + log.info("【websocket消息】列表消息:" + message); + for (String userId : userIds) { + Session session = SESSION_POOL.get(userId); + if (session != null) { + try { + session.getAsyncRemote().sendText(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + /** + * 给特定用户发送消息 + */ + public void sendOneMessage(String userId, String message) { + log.info("【websocket消息】单点消息:" + message); + Session session = SESSION_POOL.get(userId); + if (session != null) { + try { + session.getAsyncRemote().sendText(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebSocketServerEndpoint that = (WebSocketServerEndpoint) o; + return Objects.equals(session, that.session); + } +} diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 5f30a71..7730c5f 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -56,11 +56,6 @@ fastjson ${fastjson.version} - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - diff --git a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java deleted file mode 100644 index c3f7b05..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.casic.missiles.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.server.standard.ServerEndpointExporter; - -/** - * Web报警长链接 - * - * @author a203 - */ -@Configuration -public class WebSocketConfig { - @Bean - public ServerEndpointExporter serverEndpointExporter() { - return new ServerEndpointExporter(); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java deleted file mode 100644 index 0f5e892..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.casic.missiles.modular.system.utils; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.websocket.OnClose; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.Session; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.CopyOnWriteArraySet; - -/** - * WebSocket客户端建立连接的地址 - * - * @author a203 - */ -@Slf4j -@ServerEndpoint("/websocket/{userId}") -@Component -public class WebSocketServerEndpoint { - - private Session session; - - private static final CopyOnWriteArraySet WEB_SOCKETS = new CopyOnWriteArraySet<>(); - private static final Map SESSION_POOL = new HashMap<>(); - - @Override - public int hashCode() { - return Objects.hash(session); - } - - @OnOpen - public void onOpen(Session session, @PathParam(value = "userId") String userId) { - this.session = session; - WEB_SOCKETS.add(this); - SESSION_POOL.put(userId, session); - log.info(userId + "【websocket消息】有新的连接,总数为:" + WEB_SOCKETS.size()); - } - - @OnClose - public void onClose() { - WEB_SOCKETS.remove(this); - log.info("【websocket消息】连接断开,总数为:" + WEB_SOCKETS.size()); - } - - @OnMessage - public void onMessage(String message) { - log.info("【websocket消息】收到客户端消息:" + message); - } - - /** - * 广播群发消息 - */ - public void sendAllMessage(String message) { - for (WebSocketServerEndpoint socketHandler : WEB_SOCKETS) { - log.info("【websocket消息】广播消息:" + message); - try { - socketHandler.session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - public void sendListMessage(List userIds, String message) { - log.info("【websocket消息】列表消息:" + message); - for (String userId : userIds) { - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - } - - /** - * 给特定用户发送消息 - */ - public void sendOneMessage(String userId, String message) { - log.info("【websocket消息】单点消息:" + message); - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebSocketServerEndpoint that = (WebSocketServerEndpoint) o; - return Objects.equals(session, that.session); - } -} diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml index 2c40a6a..e040627 100644 --- a/casic-server-support/pom.xml +++ b/casic-server-support/pom.xml @@ -51,6 +51,11 @@ fastjson ${fastjson.version} + + org.springframework.boot + spring-boot-starter-websocket + 2.4.5 + diff --git a/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java new file mode 100644 index 0000000..c3f7b05 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -0,0 +1,18 @@ +package com.casic.missiles.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.socket.server.standard.ServerEndpointExporter; + +/** + * Web报警长链接 + * + * @author a203 + */ +@Configuration +public class WebSocketConfig { + @Bean + public ServerEndpointExporter serverEndpointExporter() { + return new ServerEndpointExporter(); + } +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java new file mode 100644 index 0000000..0f5e892 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java @@ -0,0 +1,111 @@ +package com.casic.missiles.modular.system.utils; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.websocket.OnClose; +import javax.websocket.OnMessage; +import javax.websocket.OnOpen; +import javax.websocket.Session; +import javax.websocket.server.PathParam; +import javax.websocket.server.ServerEndpoint; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.CopyOnWriteArraySet; + +/** + * WebSocket客户端建立连接的地址 + * + * @author a203 + */ +@Slf4j +@ServerEndpoint("/websocket/{userId}") +@Component +public class WebSocketServerEndpoint { + + private Session session; + + private static final CopyOnWriteArraySet WEB_SOCKETS = new CopyOnWriteArraySet<>(); + private static final Map SESSION_POOL = new HashMap<>(); + + @Override + public int hashCode() { + return Objects.hash(session); + } + + @OnOpen + public void onOpen(Session session, @PathParam(value = "userId") String userId) { + this.session = session; + WEB_SOCKETS.add(this); + SESSION_POOL.put(userId, session); + log.info(userId + "【websocket消息】有新的连接,总数为:" + WEB_SOCKETS.size()); + } + + @OnClose + public void onClose() { + WEB_SOCKETS.remove(this); + log.info("【websocket消息】连接断开,总数为:" + WEB_SOCKETS.size()); + } + + @OnMessage + public void onMessage(String message) { + log.info("【websocket消息】收到客户端消息:" + message); + } + + /** + * 广播群发消息 + */ + public void sendAllMessage(String message) { + for (WebSocketServerEndpoint socketHandler : WEB_SOCKETS) { + log.info("【websocket消息】广播消息:" + message); + try { + socketHandler.session.getAsyncRemote().sendText(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public void sendListMessage(List userIds, String message) { + log.info("【websocket消息】列表消息:" + message); + for (String userId : userIds) { + Session session = SESSION_POOL.get(userId); + if (session != null) { + try { + session.getAsyncRemote().sendText(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + /** + * 给特定用户发送消息 + */ + public void sendOneMessage(String userId, String message) { + log.info("【websocket消息】单点消息:" + message); + Session session = SESSION_POOL.get(userId); + if (session != null) { + try { + session.getAsyncRemote().sendText(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebSocketServerEndpoint that = (WebSocketServerEndpoint) o; + return Objects.equals(session, that.session); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java index 75ba151..117a012 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java @@ -38,6 +38,7 @@ private final ITaskService taskService; private final ILogService logService; private final ISatelliteService satelliteService; + private final WebSocketServerEndpoint webSocket; /** * 硬件端口名 @@ -90,7 +91,8 @@ IOceanService oceanService, IShipService shipService, IShelterPositionService shelterPositionService, IRegionPlanService regionPlanService, IRoutePlanService routePlanService, ITaskService taskService, - ILogService logService, ISatelliteService satelliteService) { + ILogService logService, ISatelliteService satelliteService, + WebSocketServerEndpoint webSocket) { this.robotService = robotService; this.typhoonService = typhoonService; this.oceanService = oceanService; @@ -101,6 +103,7 @@ this.taskService = taskService; this.logService = logService; this.satelliteService = satelliteService; + this.webSocket = webSocket; } @Override @@ -255,6 +258,8 @@ * 有头有尾的数据,直接处理 * */ handleData(ctx, data); + //处理完数据,清空链表缓存 + temp.clear(); } else { /** * 有头无尾,有尾无头,或者头尾都无的数据,先按照顺序放到链表,再处理 @@ -436,7 +441,6 @@ pos = i; } } - TyphoonDetailDTO detailDTO = typhoonService.typhoonDetail(typhoonList.get(pos).getTyphoonId()); objectMap = EncodeData.encodeEnvironment(envLng, envLat, detailDTO, oceanDetail); } @@ -479,14 +483,12 @@ ShelterPosition shelterPosition = DecodeData.decodeShelterPosition(data); saveDataLog(0, String.valueOf(robotId), shelterPosition, "0"); shelterPositionService.save(shelterPosition); + //方舱经纬度推送到前端 + webSocket.sendAllMessage(JSON.toJSONString(shelterPosition)); break; default: break; } - //处理完数据,清空链表缓存 - if (temp != null) { - temp.clear(); - } } private void saveDataLog(int type, String id, Object data, String status) { diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 5f30a71..7730c5f 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -56,11 +56,6 @@ fastjson ${fastjson.version} - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - diff --git a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java deleted file mode 100644 index c3f7b05..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.casic.missiles.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.server.standard.ServerEndpointExporter; - -/** - * Web报警长链接 - * - * @author a203 - */ -@Configuration -public class WebSocketConfig { - @Bean - public ServerEndpointExporter serverEndpointExporter() { - return new ServerEndpointExporter(); - } -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java deleted file mode 100644 index 0f5e892..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.casic.missiles.modular.system.utils; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.websocket.OnClose; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.Session; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.CopyOnWriteArraySet; - -/** - * WebSocket客户端建立连接的地址 - * - * @author a203 - */ -@Slf4j -@ServerEndpoint("/websocket/{userId}") -@Component -public class WebSocketServerEndpoint { - - private Session session; - - private static final CopyOnWriteArraySet WEB_SOCKETS = new CopyOnWriteArraySet<>(); - private static final Map SESSION_POOL = new HashMap<>(); - - @Override - public int hashCode() { - return Objects.hash(session); - } - - @OnOpen - public void onOpen(Session session, @PathParam(value = "userId") String userId) { - this.session = session; - WEB_SOCKETS.add(this); - SESSION_POOL.put(userId, session); - log.info(userId + "【websocket消息】有新的连接,总数为:" + WEB_SOCKETS.size()); - } - - @OnClose - public void onClose() { - WEB_SOCKETS.remove(this); - log.info("【websocket消息】连接断开,总数为:" + WEB_SOCKETS.size()); - } - - @OnMessage - public void onMessage(String message) { - log.info("【websocket消息】收到客户端消息:" + message); - } - - /** - * 广播群发消息 - */ - public void sendAllMessage(String message) { - for (WebSocketServerEndpoint socketHandler : WEB_SOCKETS) { - log.info("【websocket消息】广播消息:" + message); - try { - socketHandler.session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - public void sendListMessage(List userIds, String message) { - log.info("【websocket消息】列表消息:" + message); - for (String userId : userIds) { - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - } - - /** - * 给特定用户发送消息 - */ - public void sendOneMessage(String userId, String message) { - log.info("【websocket消息】单点消息:" + message); - Session session = SESSION_POOL.get(userId); - if (session != null) { - try { - session.getAsyncRemote().sendText(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebSocketServerEndpoint that = (WebSocketServerEndpoint) o; - return Objects.equals(session, that.session); - } -} diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml index 2c40a6a..e040627 100644 --- a/casic-server-support/pom.xml +++ b/casic-server-support/pom.xml @@ -51,6 +51,11 @@ fastjson ${fastjson.version} + + org.springframework.boot + spring-boot-starter-websocket + 2.4.5 + diff --git a/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java new file mode 100644 index 0000000..c3f7b05 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -0,0 +1,18 @@ +package com.casic.missiles.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.socket.server.standard.ServerEndpointExporter; + +/** + * Web报警长链接 + * + * @author a203 + */ +@Configuration +public class WebSocketConfig { + @Bean + public ServerEndpointExporter serverEndpointExporter() { + return new ServerEndpointExporter(); + } +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java new file mode 100644 index 0000000..0f5e892 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/WebSocketServerEndpoint.java @@ -0,0 +1,111 @@ +package com.casic.missiles.modular.system.utils; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.websocket.OnClose; +import javax.websocket.OnMessage; +import javax.websocket.OnOpen; +import javax.websocket.Session; +import javax.websocket.server.PathParam; +import javax.websocket.server.ServerEndpoint; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.CopyOnWriteArraySet; + +/** + * WebSocket客户端建立连接的地址 + * + * @author a203 + */ +@Slf4j +@ServerEndpoint("/websocket/{userId}") +@Component +public class WebSocketServerEndpoint { + + private Session session; + + private static final CopyOnWriteArraySet WEB_SOCKETS = new CopyOnWriteArraySet<>(); + private static final Map SESSION_POOL = new HashMap<>(); + + @Override + public int hashCode() { + return Objects.hash(session); + } + + @OnOpen + public void onOpen(Session session, @PathParam(value = "userId") String userId) { + this.session = session; + WEB_SOCKETS.add(this); + SESSION_POOL.put(userId, session); + log.info(userId + "【websocket消息】有新的连接,总数为:" + WEB_SOCKETS.size()); + } + + @OnClose + public void onClose() { + WEB_SOCKETS.remove(this); + log.info("【websocket消息】连接断开,总数为:" + WEB_SOCKETS.size()); + } + + @OnMessage + public void onMessage(String message) { + log.info("【websocket消息】收到客户端消息:" + message); + } + + /** + * 广播群发消息 + */ + public void sendAllMessage(String message) { + for (WebSocketServerEndpoint socketHandler : WEB_SOCKETS) { + log.info("【websocket消息】广播消息:" + message); + try { + socketHandler.session.getAsyncRemote().sendText(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public void sendListMessage(List userIds, String message) { + log.info("【websocket消息】列表消息:" + message); + for (String userId : userIds) { + Session session = SESSION_POOL.get(userId); + if (session != null) { + try { + session.getAsyncRemote().sendText(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + /** + * 给特定用户发送消息 + */ + public void sendOneMessage(String userId, String message) { + log.info("【websocket消息】单点消息:" + message); + Session session = SESSION_POOL.get(userId); + if (session != null) { + try { + session.getAsyncRemote().sendText(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebSocketServerEndpoint that = (WebSocketServerEndpoint) o; + return Objects.equals(session, that.session); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java index 75ba151..117a012 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java @@ -38,6 +38,7 @@ private final ITaskService taskService; private final ILogService logService; private final ISatelliteService satelliteService; + private final WebSocketServerEndpoint webSocket; /** * 硬件端口名 @@ -90,7 +91,8 @@ IOceanService oceanService, IShipService shipService, IShelterPositionService shelterPositionService, IRegionPlanService regionPlanService, IRoutePlanService routePlanService, ITaskService taskService, - ILogService logService, ISatelliteService satelliteService) { + ILogService logService, ISatelliteService satelliteService, + WebSocketServerEndpoint webSocket) { this.robotService = robotService; this.typhoonService = typhoonService; this.oceanService = oceanService; @@ -101,6 +103,7 @@ this.taskService = taskService; this.logService = logService; this.satelliteService = satelliteService; + this.webSocket = webSocket; } @Override @@ -255,6 +258,8 @@ * 有头有尾的数据,直接处理 * */ handleData(ctx, data); + //处理完数据,清空链表缓存 + temp.clear(); } else { /** * 有头无尾,有尾无头,或者头尾都无的数据,先按照顺序放到链表,再处理 @@ -436,7 +441,6 @@ pos = i; } } - TyphoonDetailDTO detailDTO = typhoonService.typhoonDetail(typhoonList.get(pos).getTyphoonId()); objectMap = EncodeData.encodeEnvironment(envLng, envLat, detailDTO, oceanDetail); } @@ -479,14 +483,12 @@ ShelterPosition shelterPosition = DecodeData.decodeShelterPosition(data); saveDataLog(0, String.valueOf(robotId), shelterPosition, "0"); shelterPositionService.save(shelterPosition); + //方舱经纬度推送到前端 + webSocket.sendAllMessage(JSON.toJSONString(shelterPosition)); break; default: break; } - //处理完数据,清空链表缓存 - if (temp != null) { - temp.clear(); - } } private void saveDataLog(int type, String id, Object data, String status) { diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 26b3e18..70b67bc 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,5 +1,5 @@ server: - port: 8083 + port: 12209 ################### spring配置 ################### spring: datasource: