[英]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.