2014-04-03 1 views
3

클라이언트에 응답하기 위해 120 초 이상 소요되는 NodeJS Express 서버로 요청을 보낼 때마다 요청 시간 초과 오류가 발생합니다.서버가 120 초 이상 요청을 처리 할 때 노드 익스프레스 서버 연결 시간 초과가 발생했습니다.

request.setTimeOut(200000);으로 서버 시간 초과를 시도했지만 localhost ..에서 액세스했을 때만 작동하고 IP 주소를 철저히 시간 초과합니다. 웹 사이트에서도 동일한 문제가 발생합니다.

  • 로컬 호스트에서

    $.ajax({ 
        url: "/cmfm", 
        type: "POST", 
        contentType: "application/json", // content type is must  
        cache: false, 
    }).done(function (resultdata) { 
        alert('timout passed - ' + resultdata.data); 
    }) 
    .fail(function() { 
        alert('Timout failed'); 
    }); 
    

    : 서버를 요청

    var express = require('express') 
    var app = express(); 
    app.set('port', process.env.PORT || 3003); 
    app.listen(app.get('port')); 
    app.post('/cmfm', function (req, res) { 
        req.setTimeout(600000); 
        //req.socket.setKeepAlive(true,1);  
        var startTime = (new Date()).getTime(); 
        var response = {}; 
        response.data = 1; 
        console.log('request starts to process.. '); 
        setTimeout(function() { 
         var endTime = (new Date()).getTime(); 
         console.log('Total Time taken to run --> ' + (endTime - startTime)); 
         res.json(response); 
        }, 180000); 
    }); 
    

    클라이언트 측 코드 :

    120 초 요청을 잡아 내 서버 코드를 찾아주세요 : 3003
    예상대로 작동합니다. 수행 아약스는 1백80초

  • IPADDRESS 후 트리거 : 3003
    그것은 1백20초 후 ajax.fail()를 트리거 정확히에서는 setTimeout 콜백 서버에서 fn을 마무리하지 않고.

이 문제를 해결하는 데 도움을주십시오.

답변

1

확실하지만 당신은

$.ajax({ 
    url: "/cmfm", 
    type: "POST", 
    contentType: "application/json", 
    timeout: 200000, 
    cache: false, 
}).done(function (resultdata){ 
    alert('timout passed - ' + resultdata.data); 
}).fail(function() { 
    alert('Timout failed'); 
}); 

그렇지 않으면 연결 제한 시간이 클라이언트와 서버 (예. 프록시, 방화벽, ECC 사이에 무언가에 의해 트리거되는 것 같아 시간 제한 클라이언트 측을 설정하려고 수있는 것은 아닙니다 ...)

+0

감사합니다 .. 아약스 타임 아웃은 나에게 도움이되지 않지만 ... 지금 해결 .. 솔루션 - 그냥 내 사무실 네트워크에서 분리하고 데이터 카드를 사용하여 외부 네트워크에 의해 연결. 그래서 나는 그것이 방화벽/프록시 문제 일 것 같아요 ... 또한 네트워크의 측면에서 할 정확한 변화를 좁히고 게시 할 수 있습니다. – user2749751

관련 문제