0
我正在使用Spring WebSockets。它運行良好,但我現在有一種情況,在發送到Web客戶端之前需要修改消息。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()方法的一個問題,我創建一個新的消息的方式。我究竟做錯了什麼?