Prevent multiple attaches on socket close for the same user

This commit is contained in:
Joao Siebel 2020-09-29 09:57:31 -03:00
parent b0f2abad8b
commit 6919498234
2 changed files with 8 additions and 4 deletions

View File

@ -9,7 +9,7 @@ import { extractCredentials } from '/imports/api/common/server/helpers';
const ROLE_MODERATOR = Meteor.settings.public.user.role_moderator;
function currentUser() {
function currentUser(registerCallback) {
if (!this.userId) {
return Users.find({ meetingId: '' });
}
@ -27,7 +27,9 @@ function currentUser() {
}
});
this._session.socket.on('close', _.debounce(onCloseConnection, 100));
if (registerCallback) {
this._session.socket.on('close', _.debounce(onCloseConnection, 100));
}
const selector = {
meetingId,

View File

@ -229,9 +229,11 @@ class Auth {
return;
}
let registerCallback = true;
Tracker.autorun((c) => {
computation = c;
Meteor.subscribe('current-user');
Meteor.subscribe('current-user', registerCallback);
const selector = { meetingId: this.meetingID, userId: this.userID };
const fields = {
@ -242,7 +244,7 @@ class Auth {
if (!User || !('intId' in User)) {
logger.info({ logCode: 'auth_service_resend_validateauthtoken' }, 're-send validateAuthToken for delayed authentication');
makeCall('validateAuthToken', this.meetingID, this.userID, this.token);
registerCallback = false;
return;
}