@@ -31,9 +31,12 @@ 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
+ let nextId = 0 ;
34
36
app . use ( options . mountPath , api ) ;
35
37
36
38
var server = app . listen ( options . port , callback ) ;
39
+ //server.on('connection', initializeConnections);
37
40
if ( options . startLiveQueryServer || options . liveQueryServerOptions ) {
38
41
let liveQueryServer = server ;
39
42
if ( options . liveQueryPort ) {
@@ -43,8 +46,28 @@ function startServer(options, callback) {
43
46
}
44
47
ParseServer . createLiveQueryServer ( liveQueryServer , options . liveQueryServerOptions ) ;
45
48
}
49
+
50
+ function initializeConnections ( socket ) {
51
+ const socketId = nextId ++ ;
52
+ socket . id = socket . id || socketId ;
53
+ sockets [ socketId ] = socket ;
54
+
55
+ socket . on ( 'close' , ( s ) => {
56
+ delete sockets [ s . id ] ;
57
+ } )
58
+ }
59
+
60
+ function shutConnections ( ) {
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
+ shutConnections ( ) ;
48
71
server . close ( function ( ) {
49
72
process . exit ( 0 ) ;
50
73
} ) ;
@@ -98,7 +121,7 @@ runner({
98
121
} ) ;
99
122
}
100
123
} else {
101
- startServer ( options , ( ) => {
124
+ startServer ( options , ( p ) => {
102
125
logOptions ( ) ;
103
126
console . log ( '' ) ;
104
127
console . log ( '[' + process . pid + '] parse-server running on ' + options . serverURL ) ;
0 commit comments