Intereting Posts
Есть ли реализация Node OAuth Server Использование UglifyJs во всем проекте Node? Не кодировать URL-адреса в querystring stringify Есть ли инструкция Javascript, чтобы избежать асинхронного обратного вызова? Является ли Socket.IO обязательным при разработке клиентских приложений для серверов NodeJS? Проблемы с маршрутизатором vue (режим истории) в сервере разработки Vue.js – «Невозможно GET / config» «Синхронный XMLHttpRequest в основном streamе устарел», используя nodejs app.get или http-server Как я могу продолжать подписываться на signalR из Угловой службы, если соединение терпит неудачу? Загрузка и сохранение изображений Почему console.log (buffer) дает мне шестнадцатеричный список? Ловушка Browserify parse error (автономная опция) angularjs index.html в папке представлений Существуют ли какие-либо .NET-эквиваленты для Node.js? Socket.io и узел на OpenShift Использование static (), staticCache () и compress () node.js для подключения промежуточного программного обеспечения

Событие «покинуть группу» nowjs вызвано несколько раз

Я использую now.js-группы и хочу слушать, когда пользователь покидает группу, поэтому я могу выполнить некоторую очистку, если группа пуста. Я обнаружил, что событие leave вызывается несколько раз за каждый раз, когда пользователь был в группе, т. Е. Если я присоединяюсь к группе и закрываю свой браузер 3 раза в третий раз, вызывается 3 раза.

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 }); }; 

Я что-то не так с прицелом?

Вы должны удалить каждого пользователя из группы, к которой она была подключена, при отключении.

Что-то вроде :

 nowjs.on('disconnect', function() { var that = this; this.getGroups( function(groups) { for ( i=0 ; i < groups.length; i++ ) { nowjs.getGroup(groups[i]).removeUser(that.user.clientId); } } }