我正在嘗試創建一個可以在特定埠上偵聽資料的 NestJS 微服務。按照此處的說明,我有以下內容main.ts:
import { NestFactory } from '@nestjs/core';
import { MicroserviceOptions, Transport } from '@nestjs/microservices';
import { AppModule } from './app.module';
const HOST = '127.0.0.1';
const PORT = 31123;
async function bootstrap() {
const app = await NestFactory.createMicroservice<MicroserviceOptions>(
AppModule,
{
transport: Transport.TCP,
options: {
host: HOST,
port: PORT
}
},
);
await app.listen();
}
bootstrap();
我的app.controller.ts樣子:
import { Controller, Get } from '@nestjs/common';
import { MessagePattern } from '@nestjs/microservices';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
@MessagePattern('hello')
dataHandler(data: string) {
console.log(`Received: ${data}`);
}
}
我正在嘗試通過在同一臺計算機上運行的 Python 腳本向微服務發送資料:
import socket
HOST = '127.0.0.1'
PORT = 31123
someData = 'hello'
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
print(f'Sending: "{someData}"')
encodedString = someData.encode('utf8')
s.sendall(bytearray(encodedString))
資料永遠不會通過;微服務中函式中的log訊息dataHandler永遠不會執行。我是否錯誤地指定了訊息模式,或者 NestJS 微服務不是為處理原始 TCP 套接字資料而設計的?我已經閱讀了這個答案和這個答案,但它們更多地處理訊息代理的情況。任何幫助將不勝感激。
uj5u.com熱心網友回復:
對于任何在這里尋找解決方案的人,我從這個答案中找到了解決方案
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/512328.html
標籤:插座巢穴微服务
下一篇:如何停止UdpClient?
