Несколько сообщений в Nest
Список на экране должен обновляться несколько раз подряд, пока клиент слушает адрес. Одного объекта в ответе мало: нужна регулярная подача новых значений без повторного открытия страницы.
Источник interval из RxJS
выдаёт числа через короткий промежуток
времени. Цепочка с map
превращает каждое число в
MessageEvent с полем
data, и Nest отправляет
их клиенту одно за другим.
Покажем на примере постов:
import { Controller, MessageEvent, Sse } from '@nestjs/common';
import { interval, map, Observable } from 'rxjs';
@Controller('posts')
export class PostController {
@Sse('stream')
streamMany(): Observable<MessageEvent> {
return interval(300).pipe(
map((tick) => ({
data: { tick },
})),
);
}
}
Сделайте в WorkerController
поток с коротким интервалом,
чтобы клиент получал несколько
событий подряд.