diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index 41ab4fbd7..0f86fe1bd 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -497,6 +497,12 @@ ${ctx.response.status} ${endTime - startTime}ms ${ctx.response.length}`); layers.forEach((layer) => app.use(layer as any)); app.use((ctx) => handle(ctx, NotFoundHandler, () => true)); wsServer.on('connection', async (socket, request) => { + socket.on('error', (err) => { + logger.warn('Websocket Error: %s', err.message); + try { + socket.close(1003, 'Websocket Error'); + } catch (e) { } + }); const ctx: any = app.createContext(request, {} as any); await domainLayer(ctx, () => baseLayer(ctx, () => layers[1](ctx, () => userLayer(ctx, () => { })))); for (const manager of router.wsStack) {