as_musician=true in create session. Subscribe to latency callbacks with key to prevent dupe notifications.
This commit is contained in:
parent
999b8d72d0
commit
db3b3c3c73
|
|
@ -115,6 +115,7 @@ Message from Seth on sequence for creating/joining sessions:
|
|||
var $this = $(this);
|
||||
var data = $this.formToObject();
|
||||
data.client_id = app.clientId;
|
||||
data.as_musician = true;
|
||||
if (typeof(data.genres) === "string") {
|
||||
data.genres = [data.genres];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
}
|
||||
|
||||
function startSessionLatencyChecks(response) {
|
||||
sessionLatency.subscribe(latencyResponse);
|
||||
sessionLatency.subscribe(app.clientId, latencyResponse);
|
||||
$.each(response, function(index, session) {
|
||||
sessions[session.id] = session;
|
||||
sessionLatency.sessionPings(session);
|
||||
|
|
@ -61,6 +61,7 @@
|
|||
if (vals.sortScore > rowSortScore) {
|
||||
$this.before(row);
|
||||
insertedEarly = true;
|
||||
return false; // break
|
||||
}
|
||||
});
|
||||
if (!(insertedEarly)) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
var sessionPingsOut = {};
|
||||
var clientsToSessions = {};
|
||||
var sessionLatency = {};
|
||||
var subscribers = [];
|
||||
var subscribers = {};
|
||||
|
||||
function getSortScore(sessionId) {
|
||||
return sessionLatency[sessionId].sortScore;
|
||||
|
|
@ -60,9 +60,11 @@
|
|||
var sessionId = clientsToSessions[response.id];
|
||||
sessionPingsOut[sessionId]--;
|
||||
updateSessionLatency(sessionId, response);
|
||||
$.each(subscribers, function() {
|
||||
this(sessionId);
|
||||
});
|
||||
for (var k in subscribers) {
|
||||
if (typeof(subscribers[k]) === 'function') {
|
||||
subscribers[k](sessionId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function updateSessionLatency(sessionId, latencyResponse) {
|
||||
|
|
@ -100,8 +102,8 @@
|
|||
return sessionLatency[sessionId];
|
||||
}
|
||||
|
||||
function subscribe(cb) {
|
||||
subscribers.push(cb);
|
||||
function subscribe(subscriberKey, cb) {
|
||||
subscribers[subscriberKey] = cb;
|
||||
}
|
||||
|
||||
this.sessionPings = sessionPings;
|
||||
|
|
|
|||
|
|
@ -90,16 +90,26 @@
|
|||
describe("Register for Events", function() {
|
||||
it("should register successfully", function() {
|
||||
var cb = jasmine.createSpy();
|
||||
sessionLatency.subscribe(cb);
|
||||
sessionLatency.subscribe('test', cb);
|
||||
});
|
||||
it("should invoke callback on latency result", function() {
|
||||
var cb = jasmine.createSpy("Latency Subscription Callback");
|
||||
sessionLatency.subscribe(cb);
|
||||
sessionLatency.subscribe('test', cb);
|
||||
$.each(sessions, function(index, session) {
|
||||
sessionLatency.sessionPings(session);
|
||||
});
|
||||
expect(cb).toHaveBeenCalled();
|
||||
});
|
||||
it("should not add same listener twice", function() {
|
||||
var cb = jasmine.createSpy();
|
||||
sessionLatency.subscribe('test', cb);
|
||||
sessionLatency.subscribe('test', cb);
|
||||
sessionLatency.subscribe('test', cb);
|
||||
$.each(sessions, function(index, session) {
|
||||
sessionLatency.sessionPings(session);
|
||||
});
|
||||
expect(cb.callCount).toEqual(7); // 7 clients to ping, once.
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue