@@ -34,6 +34,7 @@ class Server {
34
34
this . staticWatchers = [ ] ;
35
35
// Keep track of websocket proxies for external websocket upgrade.
36
36
this . webSocketProxies = [ ] ;
37
+ this . sockets = [ ] ;
37
38
this . compiler = compiler ;
38
39
}
39
40
@@ -60,31 +61,6 @@ class Server {
60
61
return / ^ [ a - z A - Z ] [ a - z A - Z \d + \- . ] * : / . test ( URL ) ;
61
62
}
62
63
63
- static killable ( server ) {
64
- let sockets = [ ] ;
65
-
66
- server . on ( "connection" , ( socket ) => {
67
- // add socket to list
68
- sockets . push ( socket ) ;
69
-
70
- socket . once ( "close" , ( ) => {
71
- // remove socket from list
72
- sockets . splice ( sockets . indexOf ( socket ) , 1 ) ;
73
- } ) ;
74
- } ) ;
75
-
76
- server . kill = ( cb ) => {
77
- server . close ( cb ) ;
78
- sockets . forEach ( ( socket ) => {
79
- socket . destroy ( ) ;
80
- } ) ;
81
- // reset so the server can be restarted
82
- sockets = [ ] ;
83
- } ;
84
-
85
- return server ;
86
- }
87
-
88
64
static async getHostname ( hostname ) {
89
65
if ( hostname === "local-ip" ) {
90
66
return ( await internalIp . v4 ( ) ) || ( await internalIp . v6 ( ) ) || "0.0.0.0" ;
@@ -706,8 +682,6 @@ class Server {
706
682
this . setupFeatures ( ) ;
707
683
this . createServer ( ) ;
708
684
709
- Server . killable ( this . server ) ;
710
-
711
685
if ( this . options . setupExitSignals ) {
712
686
const signals = [ "SIGINT" , "SIGTERM" ] ;
713
687
@@ -1190,6 +1164,16 @@ class Server {
1190
1164
this . server = http . createServer ( this . app ) ;
1191
1165
}
1192
1166
1167
+ this . server . on ( "connection" , ( socket ) => {
1168
+ // add socket to list
1169
+ this . sockets . push ( socket ) ;
1170
+
1171
+ socket . once ( "close" , ( ) => {
1172
+ // remove socket from list
1173
+ this . sockets . splice ( this . sockets . indexOf ( socket ) , 1 ) ;
1174
+ } ) ;
1175
+ } ) ;
1176
+
1193
1177
this . server . on ( "error" , ( error ) => {
1194
1178
throw error ;
1195
1179
} ) ;
@@ -1811,9 +1795,15 @@ class Server {
1811
1795
1812
1796
if ( this . server ) {
1813
1797
await new Promise ( ( resolve ) => {
1814
- this . server . kill ( ( ) => {
1798
+ this . server . kill = ( cb ) => {
1799
+ this . server . stopCallback ( cb ) ;
1800
+ this . sockets . forEach ( ( socket ) => {
1801
+ socket . destroy ( ) ;
1802
+ } ) ;
1803
+ // reset so the server can be restarted
1804
+ this . sockets = [ ] ;
1815
1805
resolve ( ) ;
1816
- } ) ;
1806
+ } ;
1817
1807
} ) ;
1818
1808
1819
1809
await new Promise ( ( resolve , reject ) => {
0 commit comments