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

Сообщение клиента в Nest

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

Метод шлюза помечают SubscribeMessage с именем сигнала на латинице. Параметр с MessageBody получает тело сообщения: строку или объект с полями. Так сервис узнаёт текст и может сохранить его без HTTP.

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

import { Injectable } from '@nestjs/common'; @Injectable() export class PostService { posts: { title: string }[] = []; add(title: string): { title: string } { const post = { title }; this.posts.push(post); return post; } }

Шлюз внедрит сервис и примет объект с полем заголовка:

import { MessageBody, SubscribeMessage, WebSocketGateway, } from '@nestjs/websockets'; import { PostService } from './post.service.js'; @WebSocketGateway() export class PostGateway { postService: PostService; constructor(postService: PostService) { this.postService = postService; } @SubscribeMessage('createPost') handleCreatePost(@MessageBody() body: { title: string }) { this.postService.add(body.title); } }

Сервис и шлюз добавим в провайдеры модуля:

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

Сделайте в WorkerGateway приём объекта с именем работника из сообщения клиента и сохраняйте строку через WorkerService в массив памяти.

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