JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTWebsocketControl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/web/SMTWebSocketConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/web/SMTWebSocketHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java
@@ -1428,6 +1428,9 @@ Json jsonArgs = tranReq.convParamToJson("args", false); SMTQwenAgent agent = SMTAIServerApp.getApp().getQwenAgentManager().getAgentById(agentId); if(agent == null) throw new Exception("can't find agent : " + agentId); SMTLLMConnect llm = SMTAIServerApp.getApp().allocLLMConnect(null); if(jsonArgs == null) JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTWebsocketControl.java
ÎļþÒÑɾ³ý JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/web/SMTWebSocketConfig.java
@@ -1,30 +1,26 @@ package com.smtaiserver.smtaiserver.web; import org.springframework.context.annotation.Bean; 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; import org.springframework.web.socket.config.annotation.EnableWebSocket; import org.springframework.web.socket.config.annotation.WebSocketConfigurer; import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; import org.springframework.web.socket.handler.TextWebSocketHandler; import org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor; @Configuration @EnableWebSocketMessageBroker public class SMTWebSocketConfig implements WebSocketMessageBrokerConfigurer @EnableWebSocket public class SMTWebSocketConfig implements WebSocketConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry config) { // è®¾ç½®æ¶æ¯ä»£ççåç¼ï¼å³å¦ææ¶æ¯çåç¼æ¯"/topic"ï¼å°±ä¼å°æ¶æ¯è½¬åç»æ¶æ¯ä»£çï¼brokerï¼ // åç±æ¶æ¯ä»£çå°æ¶æ¯å¹¿æç»å½åè¿æ¥ç客æ·ç«¯ config.enableSimpleBroker("/topic"); // é ç½®ä¸ä¸ªæå¤ä¸ªåç¼ï¼éè¿è¿äºåç¼è¿æ»¤åºéè¦è¢«æ³¨è§£æ¹æ³å¤ççæ¶æ¯ // ä¾å¦"/app"åç¼çdestinationå¯ä»¥éè¿@MessageMappingæ³¨è§£çæ¹æ³å¤ç config.setApplicationDestinationPrefixes("/app"); @Bean public TextWebSocketHandler webSocketHandler() { return new SMTWebSocketHandler(); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { // å®ä¹ä¸ä¸ªåç¼ä¸º"/ws"çendpointï¼å¹¶å¼å¯sockjsæ¯æ // sockjså¯ä»¥è§£å³æµè§å¨å¯¹WebSocketçå ¼å®¹æ§é®é¢ registry.addEndpoint("/ws").withSockJS(); public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(webSocketHandler(), "/ws") .addInterceptors(new HttpSessionHandshakeInterceptor()) .setAllowedOrigins("*"); } } JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/web/SMTWebSocketHandler.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ package com.smtaiserver.smtaiserver.web; import java.util.Collections; import java.util.HashSet; import java.util.Set; import org.springframework.web.socket.CloseStatus; import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.handler.TextWebSocketHandler; public class SMTWebSocketHandler extends TextWebSocketHandler { private final Set<WebSocketSession> sessions = Collections.synchronizedSet(new HashSet<>()); @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { sessions.add(session); System.out.println("Client connected: " + session.getId()); } @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { String payload = message.getPayload(); System.out.println("Received message from " + session.getId() + ": " + payload); // Broadcast message to all connected clients for (WebSocketSession s : sessions) { if (s.isOpen()) { s.sendMessage(new TextMessage(payload)); } } } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { sessions.remove(session); System.out.println("Client disconnected: " + session.getId()); } }