【问题标题】:Can push notifications happen in AngularJS without socket.io?可以在没有 socket.io 的情况下在 AngularJS 中进行推送通知吗?
【发布时间】:2014-03-25 21:17:23
【问题描述】:

我正在客户端上使用 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 的情况下做到这一点?

【问题讨论】:

    标签: jquery angularjs socket.io


    【解决方案1】:

    如果没有某种套接字,您将无法拥有确切的功能。您需要实施轮询或心跳类型的解决方案。每 X 分钟对后端进行一次小检查,看看是否发生了任何变化。

    但它与实时不同。但这可能是您在此期间可以得到的最接近的。

    如果&当您的公司批准该服务时,似乎有很多使用Angular + Socket 的示例。或者,您也可以考虑做类似 FireBase 的事情 - 或者更确切地说是 AngularFire

    【讨论】:

    • 我想到了同样的方法。猜猜我必须这样做..谢谢
    【解决方案2】:

    首先,重要的是要理解术语 "push notifications" 意味着有一个 服务器 具有将通知从服务器推送到客户端的服务,在我们的例子中,客户端是有角度的。

    所以正确的问题是,将哪种服务器技术用于推送通知,幸运的是,我们拥有广泛的服务器和推送通知技术。

    在node.js中我们有socket.io,微软的asp.netsignalR,最后这个服务抽象了我们使用fallback推送通知的方式意思是,如果我们的浏览器支持websocket,它将使用这个连接,否则回退到long pulling等,所以长话短说并回答你的问题,你不必使用socket.io 但是您确实需要一个能够为您提供良好且简单的服务来推送数据的服务器,您甚至可以实现自己的推送服务,例如 this 示例。

    【讨论】:

      猜你喜欢
      • 2012-05-22
      • 1970-01-01
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      相关资源
      最近更新 更多