Я использую группы now.js и хочу слушать, когда пользователь покидает группу, поэтому я могу выполнить некоторую уборку, если группа пуста. Я считаю, что событие leave вызывается несколько раз за каждый раз, когда пользователь был в группе, т. Е. Если я присоединяюсь к группе и закрываю свой браузер 3 раза в третий раз, вызывается 3 раза.nowjs group leave event called multiple times
chatserver.prototype.joinGroup = function(groupId) {
//user joins group
var group = this.nowjs.getGroup(doc_id);
group.addUser(that.user.clientId);
//want to know when a user leaves a group
group.on('leave', function() {
console.log("user left group:"+groupId)
//do group clean up
});
};
Я делаю что-то неправильно с прицелом?
Проблема, безусловно, в вашей группе массива, вы называете group.removeUser где-нибудь в вашем коде? Если вы не пытаетесь вызвать 'group.removeUser (that.user.clientId)' on nowjs disconnect event! – drinchev
Я пробовал это внутри обратного вызова, но removeUser запускает событие leave, чтобы вы застряли в цикле. –
Я имел в виду событие разъединения smth. например: 'nowjs.on ('disconnect', function() {group.removeUser (this.user.clientId)});'. Если у вас нет removeUser, что вызывает событие отпуска группы в исходном коде? – drinchev