@@ -39,9 +39,7 @@ class IOSLiveSyncService extends liveSyncServiceBaseLib.LiveSyncServiceBase<Mobi
39
39
if ( ! this . socket ) {
40
40
helpers . connectEventually ( ( ) => net . connect ( IOSLiveSyncService . BACKEND_PORT ) , ( socket : net . Socket ) => {
41
41
this . socket = socket ;
42
- if ( this . $options . watch ) {
43
- this . attachProcessExitHandlers ( ) ;
44
- }
42
+ this . attachEventHandlersIfNecessary ( ) ;
45
43
this . sendPageReloadMessage ( ) ;
46
44
} ) ;
47
45
} else {
@@ -52,12 +50,27 @@ class IOSLiveSyncService extends liveSyncServiceBaseLib.LiveSyncServiceBase<Mobi
52
50
if ( ! this . socket ) {
53
51
this . $iOSSocketRequestExecutor . executeAttachRequest ( this . device , timeout ) . wait ( ) ;
54
52
this . socket = this . device . connectToPort ( IOSLiveSyncService . BACKEND_PORT ) ;
53
+ this . attachEventHandlersIfNecessary ( ) ;
55
54
}
56
55
this . sendPageReloadMessage ( ) ;
57
56
}
58
57
} ) . future < void > ( ) ( ) ;
59
58
}
60
59
60
+ private attachEventHandlersIfNecessary ( ) : void {
61
+ if ( this . $options . watch ) {
62
+ this . attachProcessExitHandlers ( ) ;
63
+ this . attachSocketCloseEvent ( ) ;
64
+ }
65
+ }
66
+
67
+ private attachSocketCloseEvent ( ) : void {
68
+ this . socket . on ( "close" , ( hadError : boolean ) => {
69
+ this . $logger . trace ( `Socket closed, hadError is ${ hadError } .` ) ;
70
+ this . socket = null ;
71
+ } ) ;
72
+ }
73
+
61
74
private sendPageReloadMessage ( ) : void {
62
75
try {
63
76
this . sendPageReloadMessageCore ( ) ;
@@ -101,8 +114,10 @@ class IOSLiveSyncService extends liveSyncServiceBaseLib.LiveSyncServiceBase<Mobi
101
114
}
102
115
103
116
private destroySocket ( ) : void {
104
- this . socket . destroy ( ) ;
105
- this . socket = null ;
117
+ if ( this . socket ) {
118
+ this . socket . destroy ( ) ;
119
+ this . socket = null ;
120
+ }
106
121
}
107
122
}
108
123
$injector . register ( "iosLiveSyncServiceLocator" , { factory : IOSLiveSyncService } ) ;
0 commit comments