我的目标是将具有正确标头的浏览器客户端与服务器连接。我从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?