SocketIORouter: Improve error handling
This commit is contained in:
parent
fcfa51bda6
commit
3b76b2dd67
1 changed files with 11 additions and 11 deletions
|
@ -68,19 +68,19 @@ exports.setSocketIO = (_io) => {
|
||||||
components[i].handleConnect(socket);
|
components[i].handleConnect(socket);
|
||||||
}
|
}
|
||||||
|
|
||||||
socket.on('message', (message, ack = () => {}) => {
|
socket.on('message', (message, ack = () => {}) => (async () => {
|
||||||
if (!message.component || !components[message.component]) {
|
if (!message.component || !components[message.component]) {
|
||||||
logger.error(`Can't route the message: ${JSON.stringify(message)}`);
|
throw new Error(`unknown message component: ${message.component}`);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
logger.debug(`from ${socket.id}: ${JSON.stringify(message)}`);
|
logger.debug(`from ${socket.id}:`, message);
|
||||||
(async () => await components[message.component].handleMessage(socket, message))().then(
|
return await components[message.component].handleMessage(socket, message);
|
||||||
(val) => ack(null, val),
|
})().then(
|
||||||
(err) => {
|
(val) => ack(null, val),
|
||||||
logger.error(`Error while handling message from ${socket.id}: ${err.stack || err}`);
|
(err) => {
|
||||||
ack({name: err.name, message: err.message});
|
logger.error(
|
||||||
});
|
`Error handling ${message.component} message from ${socket.id}: ${err.stack || err}`);
|
||||||
});
|
ack({name: err.name, message: err.message}); // socket.io can't handle Error objects.
|
||||||
|
}));
|
||||||
|
|
||||||
socket.on('disconnect', (reason) => {
|
socket.on('disconnect', (reason) => {
|
||||||
logger.debug(`${socket.id} disconnected: ${reason}`);
|
logger.debug(`${socket.id} disconnected: ${reason}`);
|
||||||
|
|
Loading…
Reference in a new issue