Сообщение в поток в Nest
Поток уже открыт, но клиенту нужно понятное содержимое, а не пустая строка. Без поля данных браузер не узнает, что именно изменилось в списке на сервере.
Каждый элемент наблюдаемой
последовательности описывают объектом
MessageEvent. Главное поле
data принимает строку
или объект: Nest превращает объект
в JSON перед отправкой по протоколу.
Для одного события достаточно
of с одним таким объектом.
Покажем на примере постов:
import { Controller, MessageEvent, Sse } from '@nestjs/common';
import { Observable, of } from 'rxjs';
@Controller('posts')
export class PostController {
@Sse('stream')
streamOne(): Observable<MessageEvent> {
return of({
data: { title: 'First post' },
});
}
}
Настройте в WorkerController
поток, который один раз отдаёт
событие с данными работника.