2017-11-13 1 views
0

데이터를 수집하는 Nodejs로 작성된 서버가 있습니다. 내 고객 측은 AngularJS로 작성되었습니다. 내 서버 (setInterval)에 2 초마다 http 요청을 만들고 업데이트 된 데이터를 표시해야합니다. 내 서버가 연중 무휴로 운영됩니다. 크롬이 최대치에 도달하면 내 요청을 차단할 수 있습니까? 클라이언트 측에서 요청을 생성하는 대신 다른 방법을 구현할 수 있습니까, 아니면 내 서버에서 푸시 할 수 있습니까? 일부 요청의각도 js와 노드 js로 2 초마다 요청하는 법?

예 :

var indicesTimer = setInterval(getIndices,2000); 
getIndices(); 


function getIndices(){ 
    dataService.getIndices().then(function(res){ 
    $scope.recentIndeces = res.data; 
    }); 
} 
+0

Websocket/Comet/Long Polling은 클라이언트 대신 서버 푸시를 수행하는 데 사용할 수있는 다양한 옵션입니다. – sSaroj

답변

0

확인 $interval 서비스를 제공합니다. 코드

var indicesTimer = $interval(getIndices,2000); 
getIndices(); 


function getIndices(){ 
    dataService.getIndices().then(function(res){ 
    $scope.recentIndeces = res.data; 
    }); 
} 
+0

답장을 보내 주셔서 감사합니다. 내가 찾고있는 것 같습니다. 나는 이것을 시도하고 당신에게 알립니다 – Vitali

+0

@ 비탈리 언제나 환영합니다. –

0

당신은 웹 소켓을 사용할 수 있습니다와

var stop = $interval(function() { 
       // Your code 
      }, 100); 

. 이를 사용하여 서버는 서버 측에서 변경된 사항이있을 경우 클라이언트에 알릴 수 있으므로 폴링을하지 않아도됩니다 (폴링은 x 초마다 요청을 보낼 때 수행하는 작업입니다). socket.io를 살펴보십시오.

0

이것은 일반적으로 하트 비트의 동작입니다. Chrome 또는 다른 브라우저는 요청을 차단하지 않습니다. setInterval() 처리기가 영원히 작동하지 않는 한, 다른 장치가 결국 실행되지 않습니다.

+0

내 사이트를 만들고 setInterval을 사용하는 동안 크롬 콘솔에서 다음과 같은 오류가 발생했습니다. "net :: ERR_INSUFFICIENT_RESOURCES"이는 너무 많은 요청을 작성했으며 크롬이 차단을 시작했기 때문에 제 질문을 게시 한 이유입니다. . – Vitali