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;
}
しかし、メッセージは決してありませんWebクライアントで受信しました。
私はpreSend()
方法を変更する場合:
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
return message;
}
それがうまく機能するので、これは私のPresendの()メソッドと、私は新しいメッセージを作成する方法の問題のようです。私は間違って何をしていますか?