diff --git a/src/channels/presence-channel.ts b/src/channels/presence-channel.ts index 7b618720..a2c5fa28 100644 --- a/src/channels/presence-channel.ts +++ b/src/channels/presence-channel.ts @@ -119,19 +119,28 @@ export class PresenceChannel { this.getMembers(channel).then( (members) => { members = members || []; - let member = members.find( - (member) => member.socketId == socket.id - ); - members = members.filter((m) => m.socketId != member.socketId); - this.db.set(channel + ":members", members); + let member - this.isMember(channel, member).then((is_member) => { - if (!is_member) { - delete member.socketId; - this.onLeave(channel, member); + members = members.filter((m) => { + if(m.socketId == socket.id) { + member = m + return false } + + return true }); + + this.db.set(channel + ":members", members); + + if(member) { + this.isMember(channel, member).then((is_member) => { + if (!is_member) { + delete member.socketId; + this.onLeave(channel, member); + } + }); + } }, (error) => Log.error(error) );