Я пытаюсь создать небольшое веб-приложение для электронной коммерции и хочу в реальном времени указать конечную точку, в которой перечислены продукты, поэтому я хочу, чтобы конечная точка обновлялась, если какой-либо продукт обновляется или создается.Я пытался с обработкой событий, и она работала, если отправка всех продуктов в базе данных, но я хочу отправлять продукты после фильтрации по идентификатору категории, поэтому я не понимаю, как отправить все SseEmitter отфильтрованы по идентификатору категории
Это мойкод
@GetMapping("/products/{id}")
public SseEmitter handleSse(@PathVariable int id) throws InterruptedException, IOException {
final SseEmitter emitter = new SseEmitter();
emitter.send(productService.findAll());
emitters.add(emitter);
return emitter;
}
@EventListener
public void handleProductChangedEvent(ProductChangedEvent productChangedEvent) {
emitters.forEach(e -> {
try {
e.send(productService.findAll());
} catch (IOException ex) {
ex.printStackTrace();
}
});
}
Есть ли более эффективный способ или как я могу отправить все эмиттеры после фильтрации по идентификатору категории