diff --git a/static/js/mediastream/api.js b/static/js/mediastream/api.js index 99adde88..84284144 100644 --- a/static/js/mediastream/api.js +++ b/static/js/mediastream/api.js @@ -101,7 +101,7 @@ define(['jquery', 'underscore', 'ua-parser'], function($, _, uaparser) { return this.apply(name, obj); }; - Api.prototype.request = function(type, data, cb) { + Api.prototype.request = function(type, data, cb, noqueue) { var payload = { Type: type @@ -112,7 +112,7 @@ define(['jquery', 'underscore', 'ua-parser'], function($, _, uaparser) { payload.Iid = iid; this.e.one(iid+".request", cb); } - this.connector.send(payload); + this.connector.send(payload, noqueue); } @@ -226,13 +226,28 @@ define(['jquery', 'underscore', 'ua-parser'], function($, _, uaparser) { }; - Api.prototype.sendHello = function(name) { + Api.prototype.sendHello = function(name, success, fault) { var data = { Version: this.version, Ua: this.userAgent, Id: name }; - this.send("Hello", data, true); + + var that = this; + var onResponse = function(event, type, data) { + if (type === "Welcome") { + if (success) { + success({name: name}); + } + that.e.triggerHandler("received.users", [data.Users]); + } else { + if (fault) { + fault(data); + } + } + }; + + this.request("Hello", data, onResponse, true); }; Api.prototype.sendOffer = function(to, payload) { diff --git a/static/js/services/rooms.js b/static/js/services/rooms.js index eab1820f..4ae837fc 100644 --- a/static/js/services/rooms.js +++ b/static/js/services/rooms.js @@ -27,6 +27,11 @@ define([ var requestedRoomName = ""; var currentRoom = null; + var joinFailed = function(error) { + console.log("error", error, "while joining room"); + rooms.randomRoom(); + }; + var joinRequestedRoom = function() { if ($rootScope.authorizing()) { // Do nothing while authorizing. @@ -37,8 +42,7 @@ define([ if (requestedRoomName !== "" || globalContext.Cfg.DefaultRoomEnabled) { console.log("Joining room", requestedRoomName); requestedRoomName = requestedRoomName ? requestedRoomName : ""; - api.sendHello(requestedRoomName); - api.requestUsers(); + api.sendHello(requestedRoomName, setCurrentRoom, joinFailed); } else { console.log("Default room disabled, requesting a random room."); setCurrentRoom(null); @@ -76,12 +80,6 @@ define([ joinRequestedRoom(); }); - api.e.on("received.users", function() { - setCurrentRoom({ - name: requestedRoomName - }); - }); - $rootScope.$on("$locationChangeSuccess", function(event) { var roomName; if ($route.current) {