Как получить доступ к информации о хосте внутри контроллера websocket spring stomp.
@Controller
public class EventSessionController
{
@Autowired
ApplicationContext applicationContext;
@MessageMapping("/topic/sessionmessages}")
public SocketEvent messageHandler((StompHeaderAccessor accessor, SimpMessageHeaderAccessor headerAccessor, MySocketEvent eventMsg)
{
....// Need to access request uri / host
// I could access it from headers, but its empty
System.out.println(accessor.getHost());
}
}
Я мог бы попытаться внедрить его MessageHeaderAccessor, но как мне получить доступ к контексту HTTP-запроса?
@Configuration
@EnableWebSocketMessageBroker
public class EventSocketServerConfig extends AbstractWebSocketMessageBrokerConfigurer
{
@Override
public void configureClientInboundChannel(ChannelRegistration registration)
{
registration.setInterceptors(new ChannelInterceptorAdapter()
{
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel)
{
StompHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);
accessor.setHost(.......how to get the http host?.......);
}
}
}
}