簡體   English   中英

如果沒有socket.io,推送通知是否可以在AngularJS中發生?

[英]Can push notifications happen in AngularJS without socket.io?

我正在客戶端上使用Angular開發應用程序。 該應用程序具有一組可以重新排序的幻燈片,如下所示:

<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:

    $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/

該應用程序可以由多個人訪問,因此,在添加/重新排序幻燈片時具有推送通知會很有用。 通過搜索,我發現socket.io是正確的方法。 但是我工作的公司還沒有批准socket.io。 有沒有一種方法可以不使用socket.io?

沒有某種類型的套接字,您將無法獲得確切的功能。 您需要實施輪詢或心跳解決方案。 每X分鍾對后端進行一次小檢查,以查看是否發生了任何更改。

但是,它與實時不同。 但這可能是您同時獲得的最接近的結果。

如果&當您的公司批准該服務時,似乎有很多使用Angular + Socket的示例。 另外,您也可以考慮做類似FireBase或AngularFire的事情

首先,重要的是要理解術語推送通知是指有一台服務器 ,該服務器具有將通知從服務器推送到客戶端的服務,在本例中為客戶端。

所以正確的問題是,用於推送通知的服務器技術,幸運的是,我們擁有廣泛的服務器和推送通知技術。

在node.js中,我們有socket.io ,Microsoft的asp.net中signalR ,最后,該服務使用后備含義抽象了推送通知的方式,如果我們的瀏覽器支持websocket ,它將使用此連接,否則將后備恢復為長拉等。 ,因此總而言之,您不必使用socket.io,但是您確實需要一台服務器,該服務器可以為您提供良好而便捷的服務來推送數據,您甚至可以實現自己的推送服務像這個例子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM