Я пытаюсь создать простой бэкэнд в гнезде js, который обрабатывает как HTTP-запросы (из мобильных / веб-приложений), так и TCP-запросы для какого-то датчика iot, с которым я играю.
Что лучше способ go об этом? Я видел концепцию «гибридных» приложений, но не могу найти хороший практический пример того, как ее реализовать.
В настоящее время у меня есть http-сервер, на котором запущено express в гнезде, и я регистрация клиентского модуля в app.module следующим образом:
ClientsModule.register([
{
name: 'TCP_SERVER',
transport: Transport.TCP,
options: {
host: '127.0.0.1',
port: 3333,
},
},
]),
Затем я отдельно (в другом проекте из другой командной строки) запускаю простой микросервис (в настоящее время не TCP-сервер), который отвечает через HTTP-транспорт .
У меня двоякий вопрос:
- Можно ли загружать все в одном проекте одновременно?
- если в отдельном проекте, должен ли я делать простой TCP-сервер, как я бы сделал в обычном nodejs, а также микросервис, который общается с HTTP-сервером? Примерно так:
async function bootstrap() {
const server = net.createServer(socket => {
socket.write('\r\rFrom NestJs TcpServerService\r\n');
socket.pipe(socket);
});
const app = await NestFactory.createMicroservice(AppModule, {
transport: Transport.TCP,
options: {
host: '127.0.0.1',
port: 3333,
},
});
server.listen(1337, '127.0.0.1');
app.listen(() => logger.log('Microservice A is listening'));
}
bootstrap();
Любая помощь приветствуется.
/ Manuel