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