SignalR in an Angular single page application with multiple routes listening for events
我有一个Angular应用程序,其中某些路由侦听某些SignalR消息,而某些消息则由多个路由侦听。一切正常,但是当我从路线A导航到路线B时,仍然会触发SignalA事件的路线A处理函数。我正在使用Angular服务来packageSignalR集线器并跟踪回调函数。我考虑过仅在每次路由更改时都重置回调函数数组,但是我觉得这样做不是正确的方法。假设只有一个集线器连接和特定于路由的事件处理,那么执行此操作的合适方法是什么?
Angular SignalR服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | app.factory('SignalRService', [function () { var eventCallbacks = []; var entityHub = $.connection.entityHub; entityHub.client.event = function (payload) { angular.forEach(eventCallbacks, function (callback, idx) { callback(payload); }); }; $.connection.hub.start({ transport: 'longPolling' }) .done(function () { }) .fail(function () { }); return { subscribeToEvent: subscribeToEvent }; function subscribeToEvent(callback) { eventCallbacks.push(callback); } }]); |
我在这里找到了使用
当前试图找到一种更好的方式来注入$ .connection或集线器代理依赖项。...
最佳解决方案看起来像是重构,可以在此处使用