我是一名有用的助手,可以为您翻译文本。
我有一个Spring Websocket Stomp应用程序,可以接受SUBSCRIBE请求。
在应用程序中,我有一个处理器用于SUBSCRIBE。
我的目标是在发送STOMP ERROR时调用函数(error)。请指导我如何准确地发送STOMP ERROR,例如通过获取Outboundchannel。
我有一个Spring Websocket Stomp应用程序,可以接受SUBSCRIBE请求。
在应用程序中,我有一个处理器用于SUBSCRIBE。
@Component
public class SubscribeStompEventHandler implements ApplicationListener<SessionSubscribeEvent> {
@Override
public void onApplicationEvent(SessionSubscribeEvent event) {}
}
我使用它来验证订阅。
我会在onApplicationEvent中检查某些内容,并从该函数向客户端发送STOMP ERROR消息。
我发现这个配方 如何使用Spring WebSocket向STOMP客户端发送错误消息?,但我需要了解如何获取outboundChannel。
我也尝试了以下代码:
public void sendStompError(SimpMessagingTemplate simpMessagingTemplate, String sessionId, String topic, String errorMessage) {
StompHeaderAccessor headerAccessor = StompHeaderAccessor.create(StompCommand.ERROR);
headerAccessor.setMessage(errorMessage);
headerAccessor.setSessionId(sessionId);
headerAccessor.setLeaveMutable(true);
simpMessagingTemplate.convertAndSendToUser(sessionId, topic, new byte[0], headerAccessor.getMessageHeaders());
}
我尝试订阅主题和/queue/error主题,但是我没有看到消息传播到客户端。
在客户端中,我使用:
stompClient.connect(headers
, function (frame) {
console.log("Conn OK " + url);
}, function (error) {
console.log("Conn NOT OK " + url + ": " + JSON.stringify(error));
});
}
我的目标是在发送STOMP ERROR时调用函数(error)。请指导我如何准确地发送STOMP ERROR,例如通过获取Outboundchannel。