angular-websocket
angular-websocket copied to clipboard
problem when websocket was disconnect
Hi i am using angular websocke when i switch on websocket and open the connection or close a connection the $rootScope model was not change. Service code :
.factory("MyData", function($websocket, $rootScope) {
return {
open: function () {
$rootScope.connection_status = 'connecting';
window.dataStream = $websocket(Config.socketUrl);
dataStream.onError(function () {
console.log('error')
})
dataStream.onOpen(function () {
$rootScope.connection_status = 'online';
console.log('now online',$rootScope.connection_status)
})
dataStream.onClose(function () {
$rootScope.connection_status = 'offline';
console.log('now offline',$rootScope.connection_status)
})
},
close: function () {
dataStream.close()
}
};
})
The Controller :
.controller('SocketController', function ($scope, MyData) {
$scope.MyData = MyData
$scope.MyData.open()
})
The view :
{{ connection_status }}
<div ng-switch="connection_status">
<a ng-switch-when="offline" ng-click="MyData.open()">Connect</a>
<a ng-switch-when="online" ng-click="MyData.close()">Disconnect</a>
<a ng-switch-when="connecting" ng-click="MyData.close()">cancel</a>
</div>
In this code {{ connection_status }} dont works correctly that means , we have two possible cases
- {{ connection_status }} is online (correct) and $rootScope.connection_status is online
- {{ connection_status }} is connecting (incorrect) but $rootScope.connection_status is online why?