Наши клиенты веб-сайта javascript добавляют «пользовательские» заголовки ко всем сообщениям STOMP
.
Мой проект обрабатывает конечные точки websocket, используя spring-websocket @Controller
.Лучший способ автоматического добавления заголовков stomp в заголовки
@MessageMapping(value = "/mymessages")
public void save(@Payload ToBeSaved payload, @Headers MessageHeaders headers) {
service.save(toMsg(payload, headers));
}
protected <P> Message<P> toMsg(P payload, MessageHeaders headers) {
return MessageBuilder.createMessage(payload, headers);
}
Контроллер изменяет полезную нагрузку, а затем передает новую полезную нагрузку и оригинальные WebSocket заголовки (в том числе пользовательских единиц) к весенне-интеграции @MessagingGateway
.
Основание IntegrationFlow
пытается получить доступ к «настраиваемым» заголовкам, обратившись к заголовкам сообщений с помощью SPLExpression headers['custom']
.
К сожалению, headers['custom']
всегда имеет значение null, так как custom
фактически содержится в nativeHeaders
.
Я не нашел способ рассказать IntegrationFlow
посмотреть в nativeHeaders
.
Есть ли способ в spring-websocket скопировать все родные заголовки как обычные заголовки?
Заранее спасибо
Спасибо, я не пробовал 'заголовки [«nativeHeaders»] [«заказ»] ', но еще будет в будущем , – paskos