From 8c655c6c9b881167e23ba3ef8d7fa07c811b44c9 Mon Sep 17 00:00:00 2001
From: TangCheng <tangchengmail@163.com>
Date: 星期三, 16 四月 2025 14:35:44 +0800
Subject: [PATCH] 添加websocket类

---
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/web/SMTWebSocketConfig.java      |   30 ++++++++++++++++++++++++++++++
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTWebsocketControl.java |   19 +++++++++++++++++++
 2 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTWebsocketControl.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTWebsocketControl.java
new file mode 100644
index 0000000..e528d63
--- /dev/null
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTWebsocketControl.java
@@ -0,0 +1,19 @@
+package com.smtaiserver.smtaiserver.control;
+
+import org.springframework.messaging.Message;
+import org.springframework.messaging.handler.annotation.MessageMapping;
+import org.springframework.messaging.handler.annotation.SendTo;
+import org.springframework.stereotype.Controller;
+
+@Controller
+public class SMTWebsocketControl 
+{
+    // 澶勭悊鏉ヨ嚜"/app/chat"鐨勬秷鎭�
+    @MessageMapping("/chat")
+    // 灏嗚繑鍥炵殑娑堟伅鍙戦�佸埌"/topic/messages"
+    @SendTo("/topic/messages")
+    public Message<?> send(Message<?> message) throws Exception 
+    {
+        return message;
+    }
+}
diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/web/SMTWebSocketConfig.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/web/SMTWebSocketConfig.java
new file mode 100644
index 0000000..0ea0319
--- /dev/null
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/web/SMTWebSocketConfig.java
@@ -0,0 +1,30 @@
+package com.smtaiserver.smtaiserver.web;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.messaging.simp.config.MessageBrokerRegistry;
+import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
+import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
+import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
+
+@Configuration
+@EnableWebSocketMessageBroker
+public class SMTWebSocketConfig implements WebSocketMessageBrokerConfigurer
+{
+    @Override
+    public void configureMessageBroker(MessageBrokerRegistry config)
+    {
+        // 璁剧疆娑堟伅浠g悊鐨勫墠缂�锛屽嵆濡傛灉娑堟伅鐨勫墠缂�鏄�"/topic"锛屽氨浼氬皢娑堟伅杞彂缁欐秷鎭唬鐞嗭紙broker锛�
+        // 鍐嶇敱娑堟伅浠g悊灏嗘秷鎭箍鎾粰褰撳墠杩炴帴鐨勫鎴风
+        config.enableSimpleBroker("/topic");
+        // 閰嶇疆涓�涓垨澶氫釜鍓嶇紑锛岄�氳繃杩欎簺鍓嶇紑杩囨护鍑洪渶瑕佽娉ㄨВ鏂规硶澶勭悊鐨勬秷鎭�
+        // 渚嬪"/app"鍓嶇紑鐨刣estination鍙互閫氳繃@MessageMapping娉ㄨВ鐨勬柟娉曞鐞�
+        config.setApplicationDestinationPrefixes("/app");
+    }
+
+    @Override
+    public void registerStompEndpoints(StompEndpointRegistry registry) {
+        // 瀹氫箟涓�涓墠缂�涓�"/ws"鐨別ndpoint锛屽苟寮�鍚痵ockjs鏀寔
+        // sockjs鍙互瑙e喅娴忚鍣ㄥWebSocket鐨勫吋瀹规�ч棶棰�
+        registry.addEndpoint("/ws").withSockJS();
+    }
+}

--
Gitblit v1.9.3