From c0fe8d57e8f4b204ed1ebb58ff495826fe3d21e5 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Mon, 7 Apr 2014 11:33:35 -0300 Subject: [PATCH] added support for close event --- js/services/network.js | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/js/services/network.js b/js/services/network.js index 7e526654f..e05e0a8ca 100644 --- a/js/services/network.js +++ b/js/services/network.js @@ -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 } });