diff --git a/lib/server.js b/lib/server.js index d4bd6b452..070ae7bdf 100644 --- a/lib/server.js +++ b/lib/server.js @@ -245,6 +245,11 @@ var createSocketIoServer = function(webServer, executor, config) { var server = io.listen(webServer, { // avoid destroying http upgrades from socket.io to get proxied websockets working 'destroy upgrade': false, + // socket.io has a timeout (15s by default) before destroying a store (a data structure where + // data associated with a socket are stored). Unfortunately this timeout is not cleared + // properly on socket.io shutdown and this timeout prevents karma from exiting cleanly. + // We change this timeout to 0 to make Karma exit just after all tests were executed. + 'client store expiration': 0, logger: logger.create('socket.io', constant.LOG_ERROR), resource: config.urlRoot + 'socket.io', transports: config.transports