mirror of
https://github.com/mempool/mempool.git
synced 2025-02-24 06:47:52 +01:00
Merge pull request #3704 from mempool/mononaut/handle-websocket-errors
Disconnect websocket clients on error
This commit is contained in:
commit
ba933a81c3
1 changed files with 8 additions and 3 deletions
|
@ -94,9 +94,13 @@ class WebsocketHandler {
|
||||||
throw new Error('WebSocket.Server is not set');
|
throw new Error('WebSocket.Server is not set');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.wss.on('connection', (client: WebSocket) => {
|
this.wss.on('connection', (client: WebSocket, req) => {
|
||||||
this.numConnected++;
|
this.numConnected++;
|
||||||
client.on('error', logger.info);
|
client['remoteAddress'] = req.headers['x-forwarded-for'] || req.socket?.remoteAddress || 'unknown';
|
||||||
|
client.on('error', (e) => {
|
||||||
|
logger.info(`websocket client error from ${client['remoteAddress']}: ` + (e instanceof Error ? e.message : e));
|
||||||
|
client.close();
|
||||||
|
});
|
||||||
client.on('close', () => {
|
client.on('close', () => {
|
||||||
this.numDisconnected++;
|
this.numDisconnected++;
|
||||||
});
|
});
|
||||||
|
@ -282,7 +286,8 @@ class WebsocketHandler {
|
||||||
client.send(serializedResponse);
|
client.send(serializedResponse);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.debug('Error parsing websocket message: ' + (e instanceof Error ? e.message : e));
|
logger.debug(`Error parsing websocket message from ${client['remoteAddress']}: ` + (e instanceof Error ? e.message : e));
|
||||||
|
client.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue