Несмотря на то, что соединение открыто, и сервер отправляет событие, Frontend ничего не получает в AddEventListener ('order'). < /p>
Однако, если я жестко кодирует один Sseemitter и используйте /connect1 (см. Ниже), он работает с нагрузкой, но не с addEventlener ( /p> p> pre -wylener (). /> Это заставляет меня думать, что что -то не так с тем, как это событие отформатировано или работает менеджер излучения. Stream? Спасибо! < /P>
Я пытаюсь реализовать события Server-Sent (SSE), используя Spring Boot и Nuxt3. < /P>
Я установил основную конечную точку SSE, как это: < /p>
Код: Выделить всё
@GetMapping(value = "/subscribe", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public SseEmitter subscribe() {
return emitterManager.subscribe(); // returns a new emitter and adds it to a list
}
< /code>
Когда пользователь завершает платеж, я хочу уведомить веб-администратора в режиме реального времени: < /p>
emitterManager.sendEvent("order", gymIdx); // gymIdx is just a Long
< /code>
Вот как я слушаю на фронте: < /p>
onMounted(() => {
const eventSource = new EventSource('/api/v1/sse/subscribe');
eventSource.addEventListener('order', (event) => {
console.log('[✅ Event received]', event.data);
});
eventSource.onopen = () => {
console.log('[🔗 SSE connection opened]');
};
eventSource.onerror = (err) => {
console.warn('[❌ SSE error]', err);
};
onBeforeUnmount(() => {
eventSource.close();
});
});
< /code>
Я вижу журналы в бэкэнд, например: < /p>
📤 SSE sent: eventName=order, data=7483
[*] Запрос подписывания остается (ожидает)-которое ожидается для живого соединения
Тип ответа/событие
>
Подробнее здесь: https://stackoverflow.com/questions/795 ... r-even-tho
Мобильная версия