Node.js挂起HTTP请求

时间:2018-05-10 09:28:36

标签: node.js http electron

我目前正在开发一个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);

此代码在第一个请求时挂起。根据{{​​1}},请求甚至不会离开我的机器。奇怪的是,当我在URL中使用IP地址而不是域名时,请求工作正常。所以,我认为这个问题与DNS查找有某种关系。有什么想法吗?

编辑:在纯Node.js中运行此代码时,问题不会出现。

编辑:此问题仅出现在Linux上。

0 个答案:

没有答案