根据从UI传递的令牌断开服务器端的Websocket

时间:2017-02-16 16:06:42

标签: java spring-mvc websocket stomp

我的目标是将具有正确标头的浏览器客户端与服务器连接。我从StompClient传递这些头文件。

我在头文件中传递令牌的用户界面代码是

@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
    MessageHeaders headers = message.getHeaders();
    System.out.println("preSend : HEADERS : {}" + headers);
    return super.preSend(message, channel);
}

在后端,我能够读取 ChannelInterceptorAdapter preSend()方法中的标题

public void configureWebSocketTransport(final WebSocketTransportRegistration registration) {
    registration.addDecoratorFactory(new WebSocketHandlerDecoratorFactory() {
        @Override
        public WebSocketHandler decorate(final WebSocketHandler handler) {
            return new WebSocketHandlerDecorator(handler) {
                @Override
                public void afterConnectionEstablished(final WebSocketSession session) throws Exception {   

                    session.close(CloseStatus.NOT_ACCEPTABLE);
                    super.afterConnectionEstablished(session);
                }
            };
        }
    });
    super.configureWebSocketTransport(registration);
}

但在这里我无法关闭wesocket会话。我们怎么能这样做?

我也能够关闭websocket会话,但我无法在 WebSocketHandlerDecorator

afterConnectionEstablished()方法中收到标题
con

有人可以指导我如何基于我们从服务器端的UI传递的标题关闭websocketsession?

0 个答案:

没有答案