Вы должны правильно настроить порты, чтобы использовать его с гнездом:
Шаблон, который вы хотите отправить:
<json-length>#{"pattern": <pattern-name>, "data": <your-data>[, "id": <message-id>]}
Пример:
76#{"pattern":"sum","data":[0,3,3],"id":"ce51ebd3-32b1-4ae6-b7ef-e018126c4cc4"}
параметр id
предназначен для @MessagePattern
, без него будет срабатывать @EventPattern
.
В вашем main.ts
вы настраиваете сервер гнезд,Это порт, который вы хотите отправить от Packet Sender (введите в 1).
const app = await NestFactory.createMicroservice(AppModule, {
transport: Transport.TCP,
options: { host: 'localhost', port: 3005 },
// ^^^^^^^^^^
});
Затем вы хотите, чтобы ваше гнездо @Client
прослушивало сообщения от отправителя пакета (см. Позицию 2 на изображении)
@Client({
transport: Transport.TCP,
options: { host: 'localhost', port: 52079 },
// ^^^^^^^^^^^
})
private client: ClientTCP;
Затем подключите ваш клиент:
async onModuleInit() {
await this.client.connect();
}
и определите @MessagePattern
:
@MessagePattern('sum')
sum(data: number[]): number {
console.log(data);
return data.reduce((a, b) => a + b, 0);
}
Как вы можете видеть, в примере я отправляю [0,3,3]
, и гнездо правильно отвечает суммой 6
.