make sure sockets leave the current room when entering another

This commit is contained in:
barisusakli
2014-11-16 16:37:31 -05:00
parent 8e114c2093
commit f0797493ee
2 changed files with 6 additions and 5 deletions

View File

@@ -207,7 +207,6 @@ var socket,
socket.emit('meta.rooms.enter', {
enter: room,
leave: app.currentRoom,
username: app.username,
userslug: app.userslug,
picture: app.picture

View File

@@ -70,15 +70,17 @@ SocketMeta.rooms.enter = function(socket, data, callback) {
return callback(new Error('[[error:invalid-data]]'));
}
if (data.leave) {
socket.leave(data.leave);
if (data.leave.indexOf('topic') !== -1) {
websockets.in(data.leave).emit('event:user_leave', socket.uid);
if (socket.currentRoom) {
socket.leave(socket.currentRoom);
if (socket.currentRoom.indexOf('topic') !== -1) {
websockets.in(socket.currentRoom).emit('event:user_leave', socket.uid);
}
socket.currentRoom = '';
}
if (data.enter) {
socket.join(data.enter);
socket.currentRoom = data.enter;
if (data.enter.indexOf('topic') !== -1) {
data.uid = socket.uid;
websockets.in(data.enter).emit('event:user_enter', data);