From 2f640b1038fa331954f78ed1f4317212cf5bb34d Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 07 六月 2024 16:56:06 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/tools/WebSocketServer.java |   70 +++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/tools/WebSocketServer.java b/north-glass-erp/src/main/java/com/example/erp/tools/WebSocketServer.java
new file mode 100644
index 0000000..a21c70e
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/tools/WebSocketServer.java
@@ -0,0 +1,70 @@
+package com.example.erp.tools;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.websocket.*;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
+import java.io.IOException;
+
+/**
+ * @author HFL
+ * @date 2022/5/16 15:17
+ * Websocket搴旂敤瀹炵幇:
+ *  1.寤虹珛杩炴帴锛岃繛鎺ユ斁鍏ヨ繛鎺ユ睜
+ *  2.鍏抽棴杩炴帴锛岃繛鎺ョЩ鍑鸿繛鎺ユ睜
+ *  3.鎺ユ敹瀹㈡埛绔彂閫佺殑娑堟伅锛屽苟鍋氬嚭鐩稿簲澶勭悊
+ *  4.娉ㄥ叆涓氬姟灞傜殑service
+ *  [娉ㄦ剰锛歋pring绠$悊鐨凚ean鏄崟渚嬫ā寮忕殑锛岃�學ebSocket涓嶆槸鍗曚緥锛屾敞鍏ユ椂闇�瑕佸鐞嗕竴涓媇
+ *  5.寮傚父澶勭悊锛岃繛鎺ョЩ闄よ繛鎺ユ睜
+ */
+@Slf4j
+@Component
+@ServerEndpoint("/websocket/{id}")
+public class WebSocketServer {
+
+    /**
+     * 寤虹珛杩炴帴鎴愬姛璋冪敤 (Session + 鍦烘櫙)
+     */
+    @OnOpen
+    public void onOpen(Session session,@PathParam("id") String screen) throws IOException {
+        log.info("[onOpen][session({}) 鎺ュ叆, [screen: {}]", session, screen);
+        WebSocketServerPool.addDataConnect(session, screen);
+        //WebSocketServerPool.sendMessage(session, configurationScreenService.queryAllJsonById(screen));
+    }
+
+    /**
+     * 鍏抽棴杩炴帴鏃惰皟鐢�
+     * @param session 杩炴帴
+     */
+    @OnClose
+    public void onClose(Session session, CloseReason closeReason) {
+        log.info("[onClose][session({}) 杩炴帴鍏抽棴銆傚叧闂師鍥犳槸({})}]", session, closeReason);
+        WebSocketServerPool.removeConnect(session);
+    }
+
+    /**
+     * 閿欒鏃惰皟鐢�
+     * @param session 杩炴帴
+     * @param throwable 寮傚父
+     */
+    @OnError
+    public void onError(Session session, Throwable throwable) {
+        log.info("[onClose][session({}) 鍙戠敓寮傚父]", session, throwable);
+        WebSocketServerPool.removeConnect(session);
+    }
+
+    /**
+     * 鏀跺埌瀹㈡埛绔俊鎭悗锛屾牴鎹帴鏀跺埌鐨勪俊鎭繘琛屽鐞�
+     * @param session 杩炴帴
+     * @param message 鏁版嵁娑堟伅
+     */
+    @OnMessage
+    public void onMessage(Session session, String message) {
+        //log.info("[onOpen][session({}) 鎺ユ敹鍒颁竴鏉℃秷鎭�({})]", session, message);
+        // TODO:  瀵逛簬瀹㈡埛绔彂閫佺殑鎸囦护淇℃伅锛岃В鏋愬悗杩涜瀵瑰簲鐨勯�昏緫澶勭悊
+    }
+
+}

--
Gitblit v1.8.0