Как я слушаю сокет unix в loopback 4? - PullRequest
0 голосов
/ 29 апреля 2019

Как мне прослушать сокет unix с расширением RestAppliction из @ loopback / rest?

Я нашел только в документах варианты прослушивания на некоторых IP-адресах и портах. Имеется ли он изначально или есть способ расширить его, добавив поведение httpServer по умолчанию из nodejs для передачи пути сокета unix в метод listen?

Я уже искал переполнение стека, репозиторий github, документы и не нашел ничего связанного с ним. Я рассмотрел код пакета http-сервера с использованием @ loopback / rest, чтобы обеспечить реализацию http-сервера, и обнаружил, что по умолчанию у него есть только возможность передать ip и порт хоста, а не сокет unix, но я сделал Не нашел тривиального способа расширения RestApplication для изменения поставщика http.

в index.js У меня сейчас есть:

const application = require('./dist');

module.exports = application;

if (require.main === module) {
  // Run the application
  const config = {
    rest: {
      port: +(process.env.PORT || 3000),
      host: process.env.HOST,
      openApiSpec: {
        // useful when used with OASGraph to locate your application
        setServersFromRequest: true,
      },
    },
  };
  application.main(config).catch(err => {
    console.error('Cannot start the application.', err);
    process.exit(1);
  });
}

Я мог бы сделать что-то вроде:

// ...
const config = {
  rest: {
    // ...
    socket: '/path/to/unix/socket.sock',
    // ..
  }
  // ..
}
// ..

Или передать экземпляр http-сервера, как это делает экспресс:

const server = require('http').createServer();
// ...
const config = {
  rest: {
    // ...
    server
    // ...
  }
  // ...
}

// and then

server.listen('/path/to/socket.sock');
...