@@ -4,26 +4,34 @@ angular.module('insight.address').controller('AddressController',
4
4
function ( $scope , $rootScope , $routeParams , $location , Global , Address , getSocket ) {
5
5
$scope . global = Global ;
6
6
7
-
8
7
var socket = getSocket ( $scope ) ;
9
-
10
- var _startSocket = function ( ) {
11
- socket . on ( 'bitcoind/addresstxid' , function ( tx ) {
12
- $rootScope . $broadcast ( 'tx' , tx ) ;
13
- var base = document . querySelector ( 'base' ) ;
14
- var baseUrl = base && base . href || '' ;
15
- var beep = new Audio ( baseUrl + '/sound/transaction.mp3' ) ;
16
- beep . play ( ) ;
8
+ var addrStr = $routeParams . addrStr ;
9
+
10
+ var _startSocket = function ( ) {
11
+ socket . on ( 'bitcoind/addresstxid' , function ( data ) {
12
+ if ( data . address === addrStr ) {
13
+ $rootScope . $broadcast ( 'tx' , data . txid ) ;
14
+ var base = document . querySelector ( 'base' ) ;
15
+ var beep = new Audio ( base . href + '/sound/transaction.mp3' ) ;
16
+ beep . play ( ) ;
17
+ }
17
18
} ) ;
18
- socket . emit ( 'subscribe' , 'bitcoind/addresstxid' , [ $routeParams . addrStr ] ) ;
19
+ socket . emit ( 'subscribe' , 'bitcoind/addresstxid' , [ addrStr ] ) ;
20
+ } ;
21
+
22
+ var _stopSocket = function ( ) {
23
+ socket . emit ( 'unsubscribe' , 'bitcoind/addresstxid' , [ addrStr ] ) ;
19
24
} ;
20
25
21
26
socket . on ( 'connect' , function ( ) {
22
27
_startSocket ( ) ;
23
28
} ) ;
24
29
25
- $scope . params = $routeParams ;
30
+ $scope . $on ( '$destroy' , function ( ) {
31
+ _stopSocket ( ) ;
32
+ } ) ;
26
33
34
+ $scope . params = $routeParams ;
27
35
28
36
$scope . findOne = function ( ) {
29
37
$rootScope . currentAddr = $routeParams . addrStr ;
0 commit comments