angular-websocket icon indicating copy to clipboard operation
angular-websocket copied to clipboard

problem when websocket was disconnect

Open mj-mehdizadeh opened this issue 7 years ago • 0 comments

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

  1. {{ connection_status }} is online (correct) and $rootScope.connection_status is online
  2. {{ connection_status }} is connecting (incorrect) but $rootScope.connection_status is online why?

mj-mehdizadeh avatar Aug 04 '16 06:08 mj-mehdizadeh