added support for close event

This commit is contained in:
Mario Colque 2014-04-07 11:33:35 -03:00
commit c0fe8d57e8

View file

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