Compare commits

...

1 commit

Author SHA1 Message Date
yflory
03a21ed4fc Add support for priority value on websocket messages 2024-04-12 11:22:36 +02:00

View file

@ -626,6 +626,7 @@ const handleGetHistory = function (Env, Server, seq, userId, parsed) {
var metadata = {};
var lastKnownHash;
var txid;
var priority;
// clients can optionally pass a map of attributes
// if the channel already exists this map will be ignored
@ -634,6 +635,7 @@ const handleGetHistory = function (Env, Server, seq, userId, parsed) {
lastKnownHash = config.lastKnownHash;
metadata = config.metadata || {};
txid = config.txid;
priority = config.priority;
if (metadata.expire) {
metadata.expire = +metadata.expire * 1000 + (+new Date());
}
@ -677,7 +679,7 @@ const handleGetHistory = function (Env, Server, seq, userId, parsed) {
if (checkExpired(Env, Server, channelName)) { return void waitFor.abort(); }
// always send metadata with GET_HISTORY requests
Server.send(userId, [0, HISTORY_KEEPER_ID, 'MSG', userId, JSON.stringify(metadata)], w);
Server.send(userId, [0, HISTORY_KEEPER_ID, 'MSG', userId, JSON.stringify(metadata), priority], w);
}));
}).nThen(() => {
let msgCount = 0;
@ -688,7 +690,7 @@ const handleGetHistory = function (Env, Server, seq, userId, parsed) {
// avoid sending the metadata message a second time
if (isMetadataMessage(msg) && metadata_cache[channelName]) { return readMore(); }
if (txid) { msg[0] = txid; }
Server.send(userId, [0, HISTORY_KEEPER_ID, 'MSG', userId, JSON.stringify(msg)], readMore);
Server.send(userId, [0, HISTORY_KEEPER_ID, 'MSG', userId, JSON.stringify(msg), priority], readMore);
}, (err, reason) => {
// Any error but ENOENT: abort
// ENOENT is allowed in case we want to create a new pad
@ -736,13 +738,13 @@ const handleGetHistory = function (Env, Server, seq, userId, parsed) {
if (msgCount === 0 && !metadata_cache[channelName] && Server.channelContainsUser(channelName, userId)) {
// TODO this might be a good place to reject channel creation by anonymous users
handleFirstMessage(Env, channelName, metadata);
Server.send(userId, [0, HISTORY_KEEPER_ID, 'MSG', userId, JSON.stringify(metadata)]);
Server.send(userId, [0, HISTORY_KEEPER_ID, 'MSG', userId, JSON.stringify(metadata), priority]);
}
// End of history message:
let parsedMsg = {state: 1, channel: channelName, txid: txid};
Server.send(userId, [0, HISTORY_KEEPER_ID, 'MSG', userId, JSON.stringify(parsedMsg)]);
Server.send(userId, [0, HISTORY_KEEPER_ID, 'MSG', userId, JSON.stringify(parsedMsg), priority]);
});
});
};