mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-21 07:56:16 -04:00
SocketIORouter: Add acknowledgement support
This commit is contained in:
parent
9f9adb369b
commit
bc9cdd6957
2 changed files with 31 additions and 19 deletions
|
@ -68,7 +68,7 @@ exports.setSocketIO = (_io) => {
|
|||
components[i].handleConnect(socket);
|
||||
}
|
||||
|
||||
socket.on('message', async (message) => {
|
||||
socket.on('message', (message, ack = () => {}) => {
|
||||
if (message.protocolVersion && message.protocolVersion !== 2) {
|
||||
logger.warn(`Protocolversion header is not correct: ${JSON.stringify(message)}`);
|
||||
return;
|
||||
|
@ -78,11 +78,12 @@ exports.setSocketIO = (_io) => {
|
|||
return;
|
||||
}
|
||||
logger.debug(`from ${socket.id}: ${JSON.stringify(message)}`);
|
||||
try {
|
||||
await components[message.component].handleMessage(socket, message);
|
||||
} catch (err) {
|
||||
logger.error(`Error while handling message from ${socket.id}: ${err.stack || err}`);
|
||||
}
|
||||
(async () => await components[message.component].handleMessage(socket, message))().then(
|
||||
(val) => ack(null, val),
|
||||
(err) => {
|
||||
logger.error(`Error while handling message from ${socket.id}: ${err.stack || err}`);
|
||||
ack({name: err.name, message: err.message});
|
||||
});
|
||||
});
|
||||
|
||||
socket.on('disconnect', (reason) => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue