Подключение клиента в Nest
Клиент открыл канал, а сервер ещё не знает, сколько таких соединений активно. Счётчик или приветствие не появятся, пока нет точки входа в момент установки связи.
Класс шлюза может реализовать
OnGatewayConnection
и описать метод, который Nest
вызывает при каждом новом клиенте.
В параметр приходит сокет библиотеки:
по его полям можно вести учёт
или сразу отправить короткий
сигнал только этому соединению.
Покажем на примере постов:
import {
OnGatewayConnection,
WebSocketGateway,
WebSocketServer,
} from '@nestjs/websockets';
import { Server, Socket } from 'socket.io';
import { PostService } from './post.service.js';
@WebSocketGateway()
export class PostGateway implements OnGatewayConnection {
@WebSocketServer()
server: Server;
postService: PostService;
connectedCount = 0;
constructor(postService: PostService) {
this.postService = postService;
}
handleConnection(client: Socket) {
this.connectedCount += 1;
client.emit('welcome', {
posts: this.postService.posts.length,
});
}
}
В WorkerGateway увеличивайте
счётчик активных клиентов
при каждом новом соединении
и отправляйте этому клиенту
число работников уже лежащих
в памяти.