目前,我正在使用类配置Spring
public class WebSocketConfig extends WebSocketMessageBrokerConfigurationSupport现在我发现了Spring STOMP Websockets: any way to enable permessage-deflate on server side?的建议
利用……
public class SampleJettyWebSocketsApplication implements WebSocketConfigurer 和越权
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry)和提议
@Bean
public DefaultHandshakeHandler handshakeHandler() WebSocketConfigurer和WebSocketMessageBrokerConfigurationSupport?之间的关系是什么?换句话说,我是否可以通过第一类的API WebSocketMessageBrokerConfigurationSupport从WebSocketMessageBrokerConfigurationSupport实现中添加配置,所以所有配置都保留在一个文件中?
发布于 2017-04-26 17:30:15
WebSocketMessageBrokerConfigurationSupport实现是通过@EnableWebSocketMessageBroker配置的DelegatingWebSocketMessageBrokerConfiguration。在您的自定义代码中,您所需要的只是WebSocketMessageBrokerConfigurer实现。而那个被注入DelegatingWebSocketMessageBrokerConfiguration
@Autowired(required = false)
public void setConfigurers(List<WebSocketMessageBrokerConfigurer> configurers) {这是我的测试用例中的一个示例配置:
@Configuration
@EnableWebSocketMessageBroker
static class ServerConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Bean
public DefaultHandshakeHandler handshakeHandler() {
return new DefaultHandshakeHandler(new TomcatRequestUpgradeStrategy());
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws")
.setHandshakeHandler(handshakeHandler())
.setAllowedOrigins("http://foo.com")
.addInterceptors(new HandshakeInterceptor() {
@Override
public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response,
WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {
return request.getHeaders().getOrigin() != null;
}
@Override
public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response,
WebSocketHandler wsHandler, Exception exception) {
}
})
.withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry configurer) {
configurer.setApplicationDestinationPrefixes("/app")
.enableSimpleBroker("/topic", "/queue");
}
}https://stackoverflow.com/questions/43637864
复制相似问题