РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsSpSsOp 175 of 201 menu
◀ ▶

Открытие потока в Nest

Клиенту нужен не разовый JSON, а длинный ответ, который живёт, пока вкладка открыта. Обычная страница списка закрывается сразу после тела, и следующая порция данных снова требует нового обращения.

Метод контроллера помечают встроенной меткой потока и возвращают Observable с типом MessageEvent из того же пакета, что и HTTP декораторы. Nest сам выставляет заголовки потока и подписывается на наблюдаемую последовательность в процессе NodeJS.

Покажем на примере постов:

import { Controller, MessageEvent, Sse } from '@nestjs/common'; import { Observable, of } from 'rxjs'; @Controller('posts') export class PostController { @Sse('stream') openStream(): Observable<MessageEvent> { return of({ data: 'Posts stream opened' }); } }

Контроллер регистрируют в корневом модуле:

import { Module } from '@nestjs/common'; import { PostController } from './post.controller.js'; @Module({ controllers: [PostController], }) export class AppModule {}

Оформите в WorkerController адрес потока событий сервера, чтобы метод возвращал последовательность сообщений, и подключите контроллер к корневому модулю.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить