diff --git a/servers/boe-server-all/src/main/java/com/xboe/config/MqConfig.java b/servers/boe-server-all/src/main/java/com/xboe/config/MqConfig.java index a47016ca..45ae64b2 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/config/MqConfig.java +++ b/servers/boe-server-all/src/main/java/com/xboe/config/MqConfig.java @@ -1,6 +1,7 @@ package com.xboe.config; import org.apache.activemq.command.ActiveMQTopic; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jms.annotation.EnableJms; @@ -14,12 +15,16 @@ import javax.jms.Topic; @Configuration public class MqConfig { + @Value("${activemq.topic.name}") + private String topicName; + + /** * 配置topic */ @Bean public Topic broadcastTopic() { - return new ActiveMQTopic("broadcast.session.termination"); + return new ActiveMQTopic(topicName); } // 配置JmsListenerContainerFactory为发布/订阅模式 diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/mq/BroadcastMessageConsumer.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/mq/BroadcastMessageConsumer.java index 98112392..4be6932e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/mq/BroadcastMessageConsumer.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/mq/BroadcastMessageConsumer.java @@ -19,8 +19,7 @@ public class BroadcastMessageConsumer { * * @param conversationId 会话ID */ - @JmsListener(destination = "broadcast.session.termination", - containerFactory = "jmsListenerContainerFactory") + @JmsListener(destination = "${activemq.topic.name}") public void receiveSessionTerminationBroadcastMessage(String conversationId) { log.info("收到会话终止广播消息:{}", conversationId); iCaseAiChatService.eventSourceCancel(conversationId); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseAiChatServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseAiChatServiceImpl.java index 80ad8ee3..8916dbfa 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseAiChatServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseAiChatServiceImpl.java @@ -55,6 +55,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; +import javax.jms.Topic; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; @@ -106,8 +107,8 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService { @Autowired private JmsTemplate jmsTemplate; - @Value("${activemq.topic.name}") - private String topicName; + @Autowired + private Topic topic; // 用于存储会话ID与EventSource的映射关系,以便能够中断特定会话 private final Map conversationEventSourceMap = new ConcurrentHashMap<>(); @@ -772,7 +773,7 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService { log.info("收到停止会话 {} 的指令", conversationId); // 发送广播消息,通知中断连接 try { - jmsTemplate.convertAndSend(topicName, conversationId); + jmsTemplate.convertAndSend(topic, conversationId); } catch (JmsException e) { log.error("发送停止会话 {} 输出时发生异常", conversationId, e); return false; diff --git a/servers/boe-server-all/src/main/resources/application-dev.yml b/servers/boe-server-all/src/main/resources/application-dev.yml index 24835ca4..f8e9a0fd 100644 --- a/servers/boe-server-all/src/main/resources/application-dev.yml +++ b/servers/boe-server-all/src/main/resources/application-dev.yml @@ -35,6 +35,12 @@ spring: connection-timeout: 30000 max-lifetime: 1800000 maximum-pool-size: 20 + activemq: + broker-url: tcp://192.168.0.253:61616 + user: admin + password: admin + jms: + pub-sub-domain: true logging: level: org: diff --git a/servers/boe-server-all/src/main/resources/application-pre.yml b/servers/boe-server-all/src/main/resources/application-pre.yml index 152ee066..079b8096 100644 --- a/servers/boe-server-all/src/main/resources/application-pre.yml +++ b/servers/boe-server-all/src/main/resources/application-pre.yml @@ -40,6 +40,12 @@ spring: web: resources: static-locations: file:E:/Projects/BOE/10/static + activemq: + broker-url: tcp://10.251.129.51:61616 + user: admin + password: admin + jms: + pub-sub-domain: true server: port: 9090 tomcat: diff --git a/servers/boe-server-all/src/main/resources/application-prod.yml b/servers/boe-server-all/src/main/resources/application-prod.yml index f35b8231..d5f27ae5 100644 --- a/servers/boe-server-all/src/main/resources/application-prod.yml +++ b/servers/boe-server-all/src/main/resources/application-prod.yml @@ -33,6 +33,12 @@ spring: connection-timeout: 30000 max-lifetime: 1800000 maximum-pool-size: 20 + activemq: + broker-url: tcp://10.251.113.100:61616 + user: admin + password: admin + jms: + pub-sub-domain: true logging: level: org: diff --git a/servers/boe-server-all/src/main/resources/application-test.yml b/servers/boe-server-all/src/main/resources/application-test.yml index 495a6a22..1f85718e 100644 --- a/servers/boe-server-all/src/main/resources/application-test.yml +++ b/servers/boe-server-all/src/main/resources/application-test.yml @@ -40,6 +40,12 @@ spring: web: resources: static-locations: file:E:/Projects/BOE/10/static + activemq: + broker-url: tcp://10.251.129.25:61616 + user: admin + password: admin + jms: + pub-sub-domain: true server: port: 9090 tomcat: