2014-03-25 3 views
1

클라이언트에서 각도로 앱을 개발 중입니다. ,socket.io없이 AngularJS에서 알림을 푸시 할 수 있습니까?

$scope.sortableArray = [ 
     'One', 'Two', 'Three' 
    ]; 

    $scope.add = function() { 
     $scope.sortableArray.push('Item: '+$scope.sortableArray.length); 

     sortableEle.refresh(); 
    } 

    $scope.dragStart = function(e, ui) { 
     ui.item.data('start', ui.item.index()); 
    } 
    $scope.dragEnd = function(e, ui) { 
     var start = ui.item.data('start'), 
      end = ui.item.index(); 

     $scope.sortableArray.splice(end, 0, 
      $scope.sortableArray.splice(start, 1)[0]); 

     $scope.$apply(); 
    } 

    sortableEle = $('#sortable').sortable({ 
     start: $scope.dragStart, 
     update: $scope.dragEnd 
    }); 
} 

http://jsfiddle.net/dj_straycat/Q5FWt/3/

이 앱은 여러 사람 때문에 액세스 할 수 있습니다 :

<div ng-controller="SortableCTRL"> 
    <ul id="sortable"> 
     <li ng-repeat="item in sortableArray" ng-bind="item"></li> 
    </ul> 

    <button ng-click="add()">Add</button> 
    <hr> 
    <pre ng-bind="sortableArray|json"></pre> 
</div> 

JS : 응용 프로그램은, 이런 식으로 뭔가를 다시 정렬 할 수 있습니다 슬라이드 세트가 있습니다 슬라이드가 추가/재정렬 될 때 밀어 넣기 알림을받는 것이 유용 할 것입니다. 검색 할 때 socket.io가 올바른 방법임을 알았습니다. 그러나 내가 일하는 회사는 아직 socket.io를 승인하지 않았습니다. socket.io를 사용하지 않고이 작업을 수행 할 수있는 방법이 있습니까?

답변

4

소켓이 없으면 정확한 기능을 사용할 수 없습니다. 폴링 또는 하트 비트 방식의 솔루션을 구현해야합니다. X 분마다 변경 사항이 있는지 확인하기 위해 백엔드에 대한 작은 확인을 수행합니다.

실시간과 동일하지는 않습니다. 그러나 그것은 아마도 당신이 평균 시간에 얻을 수있는 가장 가까운 것입니다.

& 회사에서 서비스를 승인 한 경우 Angular + Socket을 사용하는 많은 예제가있는 것 같습니다. 또는 FireBase와 같은 작업을 수행 할 수도 있습니다 (AngularFire). 모든

+0

나는 같은 접근법을 생각했다. 내가 그걸해야만한다고 생각해. 감사합니다. – codewarrior

2

첫째 용어 "push notifications" 클라이언트가 각 우리의 경우, 서버에서 클라이언트로 알림을 밀어 서비스를 가진 서버가 의미 이해하는 것이 중요합니다.

푸시 알림에 사용할 서버 기술은 운좋게도 우리에게 다양한 서버 및 푸시 알림 기술이 있습니다. 우리가 Socket.IO에있는 Node.js를에

, 마이크로 소프트의 asp.net는 결국, signalR을 가지고 추상적이 서비스를 우리가 우리의 브라우저가 websocket는이를 사용 지원하는 경우, 대체 의미를 사용하여 푸시 알림 방법 그렇지 않으면 long pulling 등으로 폴백해야하므로 짧은 이야기를하고 질문에 답하기 위해 socket.io을 사용할 필요는 없지만 데이터를 푸시 할 수있는 쉽고 편리한 서비스를 제공하는 서버가 필요합니다. 심지어 this 예제와 같이 직접 푸시 서비스를 구현할 수도 있습니다.

관련 문제