@@ -31,9 +31,13 @@ const help = function(){
31
31
function startServer ( options , callback ) {
32
32
const app = express ( ) ;
33
33
const api = new ParseServer ( options ) ;
34
+ const sockets = { }
35
+
34
36
app . use ( options . mountPath , api ) ;
35
37
36
38
var server = app . listen ( options . port , callback ) ;
39
+ server . on ( 'connection' , initializeConnections ) ;
40
+
37
41
if ( options . startLiveQueryServer || options . liveQueryServerOptions ) {
38
42
let liveQueryServer = server ;
39
43
if ( options . liveQueryPort ) {
@@ -43,8 +47,27 @@ function startServer(options, callback) {
43
47
}
44
48
ParseServer . createLiveQueryServer ( liveQueryServer , options . liveQueryServerOptions ) ;
45
49
}
50
+
51
+ function initializeConnections ( socket ) {
52
+ const socketId = socket . remoteAddress + ':' + socket . remotePort
53
+ sockets [ socketId ] = socket ;
54
+
55
+ socket . on ( 'close' , ( ) => {
56
+ delete sockets [ socketId ] ;
57
+ } ) ;
58
+ }
59
+
60
+ function destroyAliveConnections ( ) {
61
+ for ( const socketId in sockets ) {
62
+ try {
63
+ sockets [ socketId ] . destroy ( )
64
+ } catch ( e ) { }
65
+ }
66
+ }
67
+
46
68
var handleShutdown = function ( ) {
47
69
console . log ( 'Termination signal received. Shutting down.' ) ;
70
+ destroyAliveConnections ( ) ;
48
71
server . close ( function ( ) {
49
72
process . exit ( 0 ) ;
50
73
} ) ;
0 commit comments