added support for close event

This commit is contained in:
Mario Colque 2014-04-07 11:33:35 -03:00
parent cea03f540b
commit c0fe8d57e8
1 changed files with 24 additions and 6 deletions

View File

@ -80,6 +80,7 @@ angular.module('copay.network')
});
break;
case 'disconnect':
_onClose(obj.sender);
$rootScope.connectedPeers = _arrayRemove(obj.sender, $rootScope.connectedPeers);
$rootScope.connectedTo = _arrayRemove(obj.sender, $rootScope.connectedTo);
@ -90,6 +91,15 @@ angular.module('copay.network')
}
};
var _onClose = function(pid) {
$rootScope.connectedPeers = _arrayRemove(pid, $rootScope.connectedPeers);
$rootScope.connectedTo = _arrayRemove(pid, $rootScope.connectedTo);
_saveDataStorage();
$rootScope.$digest();
};
var _connectToPeers = function(peers) {
var arrayDiff = _arrayDiff(peers, $rootScope.connectedTo);
@ -99,7 +109,7 @@ angular.module('copay.network')
};
// public methods
var _init = function(cb) {
var init = function(cb) {
peer = new Peer($rootScope.peerId, {
key: 'lwjd5qra8257b9', // TODO: we need our own PeerServer KEY (http://peerjs.com/peerserver)
debug: 3
@ -135,13 +145,17 @@ angular.module('copay.network')
});
c.on('data', _onData);
c.on('close', function() {
_onClose(c.peer);
});
}
});
}
});
};
var _connect = function(pid, cb) {
var connect = function(pid, cb) {
if (pid !== $rootScope.peerId) {
var c = peer.connect(pid, {
label: 'wallet',
@ -163,6 +177,10 @@ angular.module('copay.network')
});
c.on('data', _onData);
c.on('close', function() {
_onClose(c.peer);
});
}
};
@ -175,7 +193,7 @@ angular.module('copay.network')
_sender(pids, data, cb);
};
var _disconnect = function(cb) {
var disconnect = function(cb) {
var conns = $rootScope.connectedPeers.length;
var i = 1;
@ -198,10 +216,10 @@ angular.module('copay.network')
}
return {
init: _init,
connect: _connect,
init: init,
connect: connect,
send: _send,
disconnect: _disconnect
disconnect: disconnect
}
});