Spring Websockets: отправка сообщения автономному пользователю - сообщения не помещены в очередь в брокере сообщений
У меня есть веб-приложение с пружиной и веб-сокеты с помощью брокера сообщений (activemq).
вот мой класс конфигурации:
@Configuration
@EnableWebSocketMessageBroker
@EnableScheduling
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableStompBrokerRelay("/topic","/queue/");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/hello").withSockJS();
}
}
У меня есть запланированное задание, которое постоянно отправляет сообщения на имя пользователя «StanTheMan»:
@Scheduled(fixedDelay = 1000)
public void sendGreetings() {
HelloMessage hello = new HelloMessage();
hello.setContent("timeStamp:" + System.currentTimeMillis());
String queueMapping = "/queue/greetings";
template.convertAndSendToUser(
"DannyD",
queueMapping,
hello);
}
В настоящее время, если пользователь НЕ подключен через веб-сокет к серверу - все сообщения для негоне будучи в очереди за ним, они простоотбрасываются, всякий раз, когда он подключается - свежие сообщенияявляются быть в очереди за ним. Могу ли я каким-либо образом конвертировать сообщение для пользователя «OffAndSendToUser» автономному пользователю? я хотел бы поставить в очередь сообщения с истекшим временем для автономных пользователей, чтобы их позже выдвигали, когда они снова подключаются, а истекшее время не истекло.
как я могу этого достичь? Очевидно, что использование реального брокера сообщений (activemq) должно помочь достичь этого, но как?
Спасибо!