Node.js зависает на HTTP-запросах - PullRequest
0 голосов
/ 10 мая 2018

В настоящее время я разрабатываю приложение Electron, которое прослушивает сокет TCP и отправляет запросы на REST-сервер после получения данных.

Для тестирования я использую следующий код:

const net = require('net');
const fetch = require('node-fetch');

const server = net.createServer(connection => {
  connection.setEncoding('utf8');
  connection.on('data', data => {
    handleData(data).then(() => connection.end());
  });
});

const handleData = data => {
  return Promise.resolve()
    .then(() => test(1))
    .then(() => test(2))
    .then(() => test(3))
    .then(() => test(4))
    .then(() => test(5));
};

const test = id => {
  return fetch(`https://server.domain.name/api/v1/software/${id}`)
    .then(response => response.json())
    .then(json => {
      console.log(json);
    });
};

const socketHost = '0.0.0.0';
const socketPort = 1337;
server.listen(socketPort, socketHost);

Этот код зависает при первом запросе. По словам tcpdump, запрос даже не покидает мою машину. Странная вещь, когда я использую IP-адрес в URL-адресе вместо имени домена, запросы работают нормально. Итак, я полагаю, что эта проблема как-то связана с поиском DNS. Есть идеи?

Редактировать: При запуске этого кода в чистом Node.js проблема не появляется.

Редактировать: Эта проблема появляется только в Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...