mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
fix: #13094, update unread chats on reconnect
unread topics and notifications were updated on reconnections, added chats as well convert function to async added awaits
This commit is contained in:
@@ -18,9 +18,6 @@ module.exports = function (Messaging) {
|
||||
uids = [uids];
|
||||
}
|
||||
uids = uids.filter(uid => parseInt(uid, 10) > 0);
|
||||
if (!uids.length) {
|
||||
return;
|
||||
}
|
||||
uids.forEach((uid) => {
|
||||
io.in(`uid_${uid}`).emit('event:unread.updateChatCount', data);
|
||||
});
|
||||
|
||||
@@ -6,20 +6,23 @@ const user = require('../user');
|
||||
const meta = require('../meta');
|
||||
const topics = require('../topics');
|
||||
const privileges = require('../privileges');
|
||||
const messaging = require('../messaging');
|
||||
|
||||
const SocketMeta = module.exports;
|
||||
SocketMeta.rooms = {};
|
||||
|
||||
SocketMeta.reconnected = function (socket, data, callback) {
|
||||
callback = callback || function () {};
|
||||
if (socket.uid) {
|
||||
topics.pushUnreadCount(socket.uid);
|
||||
user.notifications.pushCount(socket.uid);
|
||||
SocketMeta.reconnected = async function (socket) {
|
||||
if (socket.uid > 0) {
|
||||
await Promise.all([
|
||||
topics.pushUnreadCount(socket.uid),
|
||||
user.notifications.pushCount(socket.uid),
|
||||
messaging.pushUnreadCount(socket.uid),
|
||||
]);
|
||||
}
|
||||
callback(null, {
|
||||
return {
|
||||
'cache-buster': meta.config['cache-buster'],
|
||||
hostname: os.hostname(),
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
/* Rooms */
|
||||
|
||||
@@ -269,12 +269,9 @@ describe('socket.io', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('should push unread notifications on reconnect', (done) => {
|
||||
it('should push unread notifications/chats on reconnect', async () => {
|
||||
const socketMeta = require('../src/socket.io/meta');
|
||||
socketMeta.reconnected({ uid: 1 }, {}, (err) => {
|
||||
assert.ifError(err);
|
||||
done();
|
||||
});
|
||||
await socketMeta.reconnected({ uid: 1 }, {});
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user