2014-09-03 5 views
2

Я хотел бы иметь эквивалент этой конфигурации XML (взятую Here), но с использованием Java конфиг:Spring Java конфиг для пользовательских WebSocket рукопожатия на Stomp конечной

<bean id="customHandler" class="app.wsock.CustomHandler"/> 

<websocket:message-broker application-destination-prefix="/app"> 
    <websocket:stomp-endpoint path="/foo"> 
    <websocket:handshake-handler ref="customHandler"/> 
    </websocket:stomp-endpoint> 
    <websocket:simpl-broker prefix="/topic,/queue" /> 
</websocket:message-broker> 

Моей целью заключается в создании класса, который пределы подключение к моей конечной точке STOMP (т. е. к его веб-расписанию) на основе некоторых критериев.

Я не хочу использовать XML для настройки моей конечной точки, как мне преобразовать этот фрагмент в конфигурацию Java?

ответ

3

Что-то вроде этого:

@Configuration 
@EnableWebSocketMessageBroker 
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { 

    @Bean 
    public HandshakeHandler handshakeHandler() { 
     return new app.wsock.CustomHandler(); 
    } 

    @Override 
    public void registerStompEndpoints(StompEndpointRegistry registry) { 
     registry.addEndpoint("/foo").setHandshakeHandler(handshakeHandler()); 
    } 

    @Override 
    public void configureMessageBroker(MessageBrokerRegistry configurer) { 
     configurer.enableStompBrokerRelay("/topic", "/queue"); 
    } 

} 
+0

Я попытался переопределить различные методы, такие как isValidOrigin(), handleInvalidConnectHeader(), determineUser(), но ни один из них не будет вызван. Я полагаю, что класс даже не создается. (Я использую Spring Boot, если это может помочь) –

+0

??? Это другой вопрос, и это связано с неправильным способом создания пользовательского 'HandshakeHandler' –

+0

. Извините, я не понимаю, что вы имеете в виду, как указано в вопросе« Моя цель - создать класс, который ограничивает подключение к моей конечной точке STOMP (т. е. к его веб-расписанию) на основе некоторых критериев. », но рукопожатие, построенное таким образом, не используется для установления связи, поэтому оно не полезно, это просто компонент, не связанный с websocket –

Смежные вопросы