diff --git a/static/js/services/rooms.js b/static/js/services/rooms.js index 27f39fef..ddeddb41 100644 --- a/static/js/services/rooms.js +++ b/static/js/services/rooms.js @@ -69,20 +69,24 @@ define([ }; var joinRequestedRoom = function() { - if (appData.authorizing()) { - // Do nothing while authorizing. + if (!connector.connected || appData.authorizing()) { + // Do nothing while not connected or authorizing. return; } - if (!connector.connected || !currentRoom || requestedRoomName !== currentRoom.Name) { + if (!currentRoom || requestedRoomName !== currentRoom.Name) { requestedRoomName = requestedRoomName ? requestedRoomName : ""; if (helloedRoomName !== requestedRoomName) { - console.log("Joining room", [requestedRoomName]); helloedRoomName = requestedRoomName; + var myHelloedRoomName = helloedRoomName; + _.defer(function() { + if (helloedRoomName === myHelloedRoomName) { + helloedRoomName = null; + } + }); + console.log("Joining room", [requestedRoomName]); api.sendHello(requestedRoomName, roompin.get(requestedRoomName), function(room) { - helloedRoomName = null; setCurrentRoom(room); }, function(error) { - helloedRoomName = null; joinFailed(error); }); }