Ответ клиенту в Nest
Клиент отправил заголовок и не знает, принял ли сервер данные. Отдельный HTTP запрос для проверки снова разрывает удобство канала, хотя ответ можно отдать сразу тому же соединению.
Если метод шлюза возвращает значение,
Nest передаёт его обратно только
отправителю как подтверждение.
Можно вернуть готовый объект
с полями или пару
event и data,
чтобы клиент получил именованный
сигнал с данными.
Покажем на примере постов:
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 }) {
const post = this.postService.add(body.title);
return {
event: 'postCreated',
data: post,
};
}
}
Измените WorkerGateway так,
чтобы после сохранения имени
работника отправителю уходило
подтверждение с сохранённой
строкой в поле ответа.