0
스프링 웹 소켓을 사용하고 있습니다. 잘 작동하지만 메시지가 웹 클라이언트에 전송되기 전에 메시지를 수정해야하는 경우가 있습니다. Stomp 인터셉터가 작동하지 않습니다.
따라서 나는 다음 인터셉터 생성 :@Component
public class StompMappingInterceptor extends ChannelInterceptorAdapter {
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
message = MessageBuilder.withPayload(modifyMessage(message))
.copyHeaders(message.getHeaders())
.build();
return message;
...
}
modifyMessage()
가 MappingJackson2MessageConverter
를 사용해야합니다,하지만 테스트를 위해, 나는 모든 메시지를 수정하고 있지 않다 그러나
private Message<?> modifyMessage(Message<?> message) {
return message;
}
를, 메시지는 결코 Webclient에서 수신되었습니다.
은 내가preSend()
방법을 변경하는 경우 :
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
return message;
}
다음 그것을 잘 작동을, 그래서 이것은 내 preSend() 메소드의 문제와 내가 새 메시지를 작성하는 방법이 될 것으로 보인다. 내가 도대체 뭘 잘못하고있는 겁니까? 다음과 같이