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

Шлюз в Nest

Клиенту нужны мгновенные обновления, а обычный ответ страницы приходит один раз. Пока браузер не обратится снова, экран показывает старую картину, хотя на сервере данные уже изменились.

Шлюз в Nest - класс с пометкой WebSocketGateway: он открывает точку для постоянного канала и живёт в том же приложении, что и HTTP. Его записывают в провайдерах модуля, как сервис. Чтобы Nest использовал Socket.IO, ставят пакеты @nestjs/websockets, @nestjs/platform-socket.io и socket.io, а при старте приложения указывают адаптер IoAdapter.

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

npm install @nestjs/websockets @nestjs/platform-socket.io socket.io

При запуске подключим адаптер Socket.IO:

import { NestFactory } from '@nestjs/core'; import { IoAdapter } from '@nestjs/platform-socket.io'; import { AppModule } from './app.module.js'; async function bootstrap() { const app = await NestFactory.create(AppModule); app.useWebSocketAdapter(new IoAdapter(app)); await app.listen(3000); } bootstrap();

Опишем пустой шлюз для постов:

import { WebSocketGateway } from '@nestjs/websockets'; @WebSocketGateway() export class PostGateway {}

Запишем класс в провайдерах корневого модуля:

import { Module } from '@nestjs/common'; import { PostGateway } from './post.gateway.js'; @Module({ providers: [PostGateway], }) export class AppModule {}

Установите пакеты веб-сокетов, подключите адаптер при старте приложения работников, опишите WorkerGateway с пометкой шлюза и запишите его в провайдерах корневого модуля.

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