NodeJs에서 소켓 시간 초과에 대한 질문이 있습니다. 첫 번째 시간에서 Express Http 요청 시간 초과
, 나는 folowing 코드를 추가합니다req.socket.once('timeout', function(err) {
imports.logger.warn('Express socket timeout.', err);
res.status(504).end('Connection timeout');
});
을 그리고 나는 종종 익스프레스 소켓 시간 초과 오류가 콘솔에로드 된 페이지 후 오랜 시간이 기록이있다. 그래서 (디버깅을 위해) 나는이 라인을 추가하려고 :
req.socket.setTimeout(4000);
을 그리고 마지막으로 내 모든 요청이 사초 후 익스프레스 소켓 타임 아웃을 처리하는 것을 보았다. 웹에서 검색 한 결과 많은 정보를 발견했지만 여전히 이해할 수 없습니다.
요청을 닫는 res.json() 함수가 소켓을 닫지 않는 이유를 이해할 수 없습니다. Keep-Alive와 연결된 링크가 있습니까? 웹 소켓 링크?
웹 소켓 링크 인 경우 가장 적합한 번호는 무엇입니까? 소켓을 닫아야하고 (있는 경우) 정확히 어디에 있습니까?
내 간단한 익스프레스 노선 코드를 볼 수 있습니다 필요한 경우 : HTTP에서
app.get(apiUrl + '/:id', function (req, res) {
NewsFeed.findById(req.params.id, function (err, newsFeed) {
if (err) {
return app.error(res, 404, 'Error 404: No news found');
}
res.json(formatNewsFeed(newsFeed));
});
});
감사합니다. 하지만 expressjs가 소켓 타임 아웃 예외를 발생시키는 것은 정상적인 동작인지 잘 모르겠습니다. 내 다른 프로젝트에서는 expressjs에이 문제가 없었습니다. – jeremieca