Eu recebia a mensagem exata sempre que meus pedidos demoravam mais de 2 minutos para terminar. O navegador se desconectaria da solicitação, mas a solicitação no back-end continuou até que fosse concluída. O servidor (API Web da ASP.NET no meu caso) não detectou a desconexão.
Depois de um dia inteiro pesquisando, finalmente encontrei esta resposta , explicando que, se você usar a configuração do proxy , ela terá um tempo limite padrão de 120 segundos (ou 2 minutos).
Portanto, você pode editar sua configuração de proxy e configurá-la para o que precisar:
{
"/api": {
"target": "http://localhost:3000",
"secure": false,
"timeout": 6000000
}
}
Agora, eu estava usando agentkeepalive para fazê-lo funcionar com a autenticação NTLM e não sabia que o tempo limite do agente não tinha nada a ver com o tempo limite do proxy, portanto, é necessário definir os dois. Levei um tempo para perceber isso, então aqui está um exemplo:
const Agent = require('agentkeepalive');
module.exports = {
'/api/': {
target: 'http://localhost:3000',
secure: false,
timeout: 6000000, // <-- this is needed as well
agent: new Agent({
maxSockets: 100,
keepAlive: true,
maxFreeSockets: 10,
keepAliveMsecs: 100000,
timeout: 6000000, // <-- this is for the agentkeepalive
freeSocketTimeout: 90000
}),
onProxyRes: proxyRes => {
let key = 'www-authenticate';
proxyRes.headers[key] = proxyRes.headers[key] &&
proxyRes.headers[key].split(',');
}
}
};
err
objeto - não só amessage