From 47508f92940d55dab1dde2785db7b1205979137b Mon Sep 17 00:00:00 2001 From: zhaoyz <2@2.com> Date: Tue, 19 Mar 2024 18:42:59 +0800 Subject: [PATCH] =?UTF-8?q?stomp=E7=BD=91=E7=BB=9C=E6=96=AD=E5=BC=80?= =?UTF-8?q?=E6=97=B6=E5=80=99=EF=BC=8C15s=E5=90=8E=E6=96=AD=E5=BC=80?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/rax/vital/config/WebSocketConfig.java | 48 +++---------------- 1 file changed, 7 insertions(+), 41 deletions(-) diff --git a/vital-signs/src/main/java/com/rax/vital/config/WebSocketConfig.java b/vital-signs/src/main/java/com/rax/vital/config/WebSocketConfig.java index 6c782cf..09f1209 100644 --- a/vital-signs/src/main/java/com/rax/vital/config/WebSocketConfig.java +++ b/vital-signs/src/main/java/com/rax/vital/config/WebSocketConfig.java @@ -3,14 +3,12 @@ package com.rax.vital.config; import com.rax.vital.interceptor.WSChannelInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; -import org.springframework.messaging.Message; import org.springframework.messaging.simp.config.ChannelRegistration; import org.springframework.messaging.simp.config.MessageBrokerRegistry; -import org.springframework.messaging.simp.stomp.StompHeaderAccessor; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; 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.messaging.StompSubProtocolErrorHandler; @Configuration @EnableWebSocketMessageBroker @@ -23,48 +21,16 @@ public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/rax/chat", "/rax/ai-medicine", "/rax/doctor-medicine", "/rax/vital-signs", "/rax/SurgeryData") .setAllowedOrigins("*"); - // 错误处理 - registry.setErrorHandler(new StompSubProtocolErrorHandler() { - /** - * - * @param clientMessage the client message related to the error, possibly - * {@code null} if error occurred while parsing a WebSocket message - * @param ex the cause for the error, never {@code null} - * @return - */ - @Override - public Message handleClientMessageProcessingError(Message clientMessage, Throwable ex) { - return super.handleClientMessageProcessingError(clientMessage, ex); - } - - /** - * - * @param errorMessage the error message, never {@code null} - * @return - */ - @Override - public Message handleErrorMessageToClient(Message errorMessage) { - return super.handleErrorMessageToClient(errorMessage); - } - - /** - * - * @param errorHeaderAccessor - * @param errorPayload - * @param cause - * @param clientHeaderAccessor - * @return - */ - @Override - protected Message handleInternal(StompHeaderAccessor errorHeaderAccessor, byte[] errorPayload, Throwable cause, StompHeaderAccessor clientHeaderAccessor) { - return super.handleInternal(errorHeaderAccessor, errorPayload, cause, clientHeaderAccessor); - } - }); } @Override public void configureMessageBroker(MessageBrokerRegistry registry) { - registry.enableSimpleBroker("/topic"); + long [] heartbeat = {10000, 5000}; + ThreadPoolTaskScheduler te = new ThreadPoolTaskScheduler(); + te.setPoolSize(1); + te.setThreadNamePrefix("wss-heartbeat-thread-"); + te.initialize(); + registry.enableSimpleBroker("/topic").setTaskScheduler(te).setHeartbeatValue(heartbeat); registry.setApplicationDestinationPrefixes("/front"); registry.setUserDestinationPrefix("/topic/user"); }