Как передать два разных события через один SseEmitter?

Как можно отправить два разных события (event) с помощью SseEmitter в одном вызове? В настоящий момент при использовании кода, приведенного ниже, приходит только одно событие.
  • 15 декабря 2023 г. 9:46
Ответы на вопрос 2
Для передачи двух разных событий через один SseEmitter, вам нужно отправить каждое событие отдельно, вызывая метод `send()` на SseEmitter дважды.

Вот пример кода, демонстрирующий, как это можно сделать:

```java
@GetMapping("/events")
public SseEmitter getEvents() {
    SseEmitter emitter = new SseEmitter();

    // Отправка первого события
    emitter.send(SseEmitter.event().name("eventType1").data("Event 1 data"));

    // Отправка второго события
    emitter.send(SseEmitter.event().name("eventType2").data("Event 2 data"));

    emitter.complete(); // Завершение потока после отправки событий

    return emitter;
}
```

В этом примере сначала отправляется событие с именем "eventType1" и данными "Event 1 data". Затем отправляется событие с именем "eventType2" и данными "Event 2 data". После этого поток завершается с помощью метода `complete()`.

Клиент, подключенный к SSE-эндпоинту `/events`, будет получать эти два разных события в одном вызове.
Ответ банально прост (хотя я искал его 2 дня, и прямого ответа нигде не нашёл) : Нужно создать два event в теле метода. 
Похожие вопросы