Add WebSocket transport configuration support
Issue: SPR-11527
This commit is contained in:
@@ -109,13 +109,13 @@ public class MessageBrokerBeanDefinitionParserTests {
|
||||
|
||||
SubProtocolWebSocketHandler subProtocolWsHandler = (SubProtocolWebSocketHandler) wsHandler;
|
||||
assertEquals(Arrays.asList("v10.stomp", "v11.stomp", "v12.stomp"), subProtocolWsHandler.getSubProtocols());
|
||||
assertEquals(25 * 1000, subProtocolWsHandler.getSendTimeLimit());
|
||||
assertEquals(1024 * 1024, subProtocolWsHandler.getSendBufferSizeLimit());
|
||||
|
||||
StompSubProtocolHandler stompHandler =
|
||||
(StompSubProtocolHandler) subProtocolWsHandler.getProtocolHandlerMap().get("v12.stomp");
|
||||
assertNotNull(stompHandler);
|
||||
|
||||
int messageBufferSizeLimit = (int)new DirectFieldAccessor(stompHandler).getPropertyValue("messageBufferSizeLimit");
|
||||
assertEquals(123, messageBufferSizeLimit);
|
||||
assertEquals(128 * 1024, stompHandler.getMessageSizeLimit());
|
||||
|
||||
httpRequestHandler = (HttpRequestHandler) suhm.getUrlMap().get("/test/**");
|
||||
assertNotNull(httpRequestHandler);
|
||||
|
||||
@@ -23,7 +23,6 @@ import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import org.springframework.messaging.SubscribableChannel;
|
||||
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
|
||||
import org.springframework.messaging.simp.user.DefaultUserSessionRegistry;
|
||||
import org.springframework.messaging.simp.user.UserSessionRegistry;
|
||||
import org.springframework.scheduling.TaskScheduler;
|
||||
@@ -47,19 +46,18 @@ public class WebMvcStompEndpointRegistryTests {
|
||||
|
||||
private UserSessionRegistry userSessionRegistry;
|
||||
|
||||
private MessageBrokerRegistry messageBrokerRegistry;
|
||||
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
|
||||
SubscribableChannel inChannel = Mockito.mock(SubscribableChannel.class);
|
||||
SubscribableChannel outChannel = Mockito.mock(SubscribableChannel.class);
|
||||
|
||||
this.webSocketHandler = new SubProtocolWebSocketHandler(inChannel, outChannel);
|
||||
this.userSessionRegistry = new DefaultUserSessionRegistry();
|
||||
this.messageBrokerRegistry = new MessageBrokerRegistry(inChannel, outChannel);
|
||||
TaskScheduler taskScheduler = Mockito.mock(TaskScheduler.class);
|
||||
this.registry = new WebMvcStompEndpointRegistry(webSocketHandler, transportRegistration, userSessionRegistry,
|
||||
taskScheduler, messageBrokerRegistry);
|
||||
|
||||
this.registry = new WebMvcStompEndpointRegistry(this.webSocketHandler,
|
||||
new WebSocketTransportRegistration(), this.userSessionRegistry, Mockito.mock(TaskScheduler.class));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -24,13 +24,11 @@ import java.util.Set;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.messaging.MessageHandler;
|
||||
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
|
||||
import org.springframework.messaging.support.AbstractSubscribableChannel;
|
||||
import org.springframework.messaging.support.ExecutorSubscribableChannel;
|
||||
import org.springframework.messaging.handler.annotation.MessageMapping;
|
||||
@@ -53,7 +51,8 @@ import org.springframework.web.socket.messaging.SubProtocolWebSocketHandler;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Test fixture for {@link org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurationSupport}.
|
||||
* Test fixture for
|
||||
* {@link org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurationSupport}.
|
||||
*
|
||||
* @author Rossen Stoyanchev
|
||||
*/
|
||||
@@ -109,14 +108,17 @@ public class WebSocketMessageBrokerConfigurationSupportTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void maxFrameBufferSize() {
|
||||
SubProtocolWebSocketHandler subProtocolWebSocketHandler = this.config.getBean("subProtocolWebSocketHandler", SubProtocolWebSocketHandler.class);
|
||||
public void webSocketTransportOptions() {
|
||||
SubProtocolWebSocketHandler subProtocolWebSocketHandler =
|
||||
this.config.getBean("subProtocolWebSocketHandler", SubProtocolWebSocketHandler.class);
|
||||
|
||||
assertEquals(1024 * 1024, subProtocolWebSocketHandler.getSendBufferSizeLimit());
|
||||
assertEquals(25 * 1000, subProtocolWebSocketHandler.getSendTimeLimit());
|
||||
|
||||
List<SubProtocolHandler> protocolHandlers = subProtocolWebSocketHandler.getProtocolHandlers();
|
||||
for(SubProtocolHandler protocolHandler : protocolHandlers) {
|
||||
assertTrue(protocolHandler instanceof StompSubProtocolHandler);
|
||||
DirectFieldAccessor protocolHandlerFieldAccessor = new DirectFieldAccessor(protocolHandler);
|
||||
assertEquals(123, protocolHandlerFieldAccessor.getPropertyValue("messageBufferSizeLimit"));
|
||||
assertEquals(128 * 1024, ((StompSubProtocolHandler) protocolHandler).getMessageSizeLimit());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,10 +152,11 @@ public class WebSocketMessageBrokerConfigurationSupportTests {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureMessageBroker(MessageBrokerRegistry registry) {
|
||||
registry.setMessageBufferSizeLimit(123);
|
||||
public void configureWebSocketTransport(WebSocketTransportRegistration registration) {
|
||||
registration.setMessageSizeLimit(128 * 1024);
|
||||
registration.setSendTimeLimit(25 * 1000);
|
||||
registration.setSendBufferSizeLimit(1024 * 1024);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Configuration
|
||||
|
||||
Reference in New Issue
Block a user