Remove handling of SIGTERM

New version of socket.io cannot terminate cleanly when there are active
connections:

https://github.com/socketio/socket.io/issues/1602
This commit is contained in:
Jerko Steiner 2019-11-18 22:39:37 -03:00
parent c373b23f9b
commit e1b7283a94
4 changed files with 13 additions and 19 deletions

View File

@ -3,21 +3,12 @@ if (!process.env.DEBUG) {
process.env.DEBUG = 'peercalls'
}
import app from './server/app'
import _debug from 'debug'
import forEach from 'lodash/forEach'
import { io } from './server/app'
import app from './server/app'
const debug = _debug('peercalls')
const port = process.env.PORT || 3000
const server = app.listen(port, () => debug('Listening on: %s', port))
function close () {
debug('Closing server...')
server.close(() => {
debug('Bye!')
process.exit()
})
}
process.on('SIGINT', close)
process.on('SIGTERM', close)
app.listen(port, () => debug('Listening on: %s', port))

View File

@ -17,7 +17,7 @@ debug(`WebSocket URL: ${SOCKET_URL}`)
const app = express()
const server = createServer(config, app)
const io = SocketIO(server, { path: SOCKET_URL })
export const io = SocketIO(server, { path: SOCKET_URL })
app.set('x-powered-by', false)
app.locals.version = require('../../package.json').version

View File

@ -1,11 +1,12 @@
import express from 'express'
import http from 'http'
import http, { RequestListener } from 'http'
import https from 'https'
import { createServer } from './server'
describe('server', () => {
let app: Express.Application, config: any
let app: RequestListener
let config: any
beforeEach(() => {
config = {}
app = express()

View File

@ -1,16 +1,18 @@
import { readFileSync } from 'fs'
import { resolve, join } from 'path'
import { Config } from './config'
import { createServer as createHTTPSServer } from 'https'
import { createServer as createHTTPServer, RequestListener } from 'http'
const projectRoot = resolve(join(__dirname, '../..'))
const readFile = (file: string) => readFileSync(resolve(projectRoot, file))
export function createServer (config: Config, app: Express.Application) {
export function createServer (config: Config, app: RequestListener) {
if (config.ssl) {
const key = readFile(config.ssl.key)
const cert = readFile(config.ssl.cert)
return require('https').createServer({ key, cert }, app)
return createHTTPSServer({ key, cert }, app)
}
return require('http').createServer(app)
return createHTTPServer(app)
}