5d13e0ec1a1524768e73f4b9e4e4352bf4ad53cd..8c655c6c9b881167e23ba3ef8d7fa07c811b44c9
2025-04-16 TangCheng
添加websocket类
8c655c 对比 | 目录
2025-04-16 TangCheng
修改文字
5a54c6 对比 | 目录
已修改1个文件
已添加2个文件
51 ■■■■■ 文件已修改
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTWebsocketControl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/javaai/jsonflow/core/SMTJsonFlowManager.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/web/SMTWebSocketConfig.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
}
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/javaai/jsonflow/core/SMTJsonFlowManager.java
@@ -177,7 +177,7 @@
        {
            // æ‰§è¡Œä¸‹ä¸€ä¸ªèŠ‚ç‚¹
            SMTJsonFlowNodeExec flowNodeExec = execArg._stackNodeExec.pollFirst();
            execArg._tranReq.sendChunkedBlock("begin", "执行工作流节点:" + flowNodeExec._flowNode.getTitle() + "(" + flowNodeExec._flowNode.getId() + ")");
            execArg._tranReq.sendChunkedBlock("begin", "执行节点:" + flowNodeExec._flowNode.getTitle() + "(" + flowNodeExec._flowNode.getId() + ")");
            SMTJavaAIError error = flowNodeExec.executeFlowNode(execArg);
            if(error != null)
                return error;
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)
    {
        // è®¾ç½®æ¶ˆæ¯ä»£ç†çš„前缀,即如果消息的前缀是"/topic",就会将消息转发给消息代理(broker)
        // å†ç”±æ¶ˆæ¯ä»£ç†å°†æ¶ˆæ¯å¹¿æ’­ç»™å½“前连接的客户端
        config.enableSimpleBroker("/topic");
        // é…ç½®ä¸€ä¸ªæˆ–多个前缀,通过这些前缀过滤出需要被注解方法处理的消息
        // ä¾‹å¦‚"/app"前缀的destination可以通过@MessageMapping注解的方法处理
        config.setApplicationDestinationPrefixes("/app");
    }
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        // å®šä¹‰ä¸€ä¸ªå‰ç¼€ä¸º"/ws"的endpoint,并开启sockjs支持
        // sockjs可以解决浏览器对WebSocket的兼容性问题
        registry.addEndpoint("/ws").withSockJS();
    }
}