Spring Realtime Отправка данных - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь создать небольшое веб-приложение для электронной коммерции и хочу в реальном времени указать конечную точку, в которой перечислены продукты, поэтому я хочу, чтобы конечная точка обновлялась, если какой-либо продукт обновляется или создается.Я пытался с обработкой событий, и она работала, если отправка всех продуктов в базе данных, но я хочу отправлять продукты после фильтрации по идентификатору категории, поэтому я не понимаю, как отправить все 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();
        }
    });

}

Есть ли более эффективный способ или как я могу отправить все эмиттеры после фильтрации по идентификатору категории

...