Skip to content
This repository has been archived by the owner on Jul 25, 2018. It is now read-only.

Commit

Permalink
Use AJAX polling (once a minute) to update live stream. [#8697731]
Browse files Browse the repository at this point in the history
  • Loading branch information
luigi committed Jan 19, 2011
1 parent 60f2f82 commit fbc5063
Showing 1 changed file with 14 additions and 28 deletions.
42 changes: 14 additions & 28 deletions public/javascripts/application.js
@@ -1,4 +1,4 @@
var loadFollowing, loadStored, loadActivity, backfillStream, liveStream, addToStream, processQueue, vetActivity, determinePublisher, addToRecentActivities;
var loadFollowing, loadStored, loadActivity, backfillStream, addToStream, processQueue, vetActivity, determinePublisher, addToRecentActivities;

$(function() {

Expand Down Expand Up @@ -133,33 +133,19 @@ loadActivity = function() {
// Backfill the stream as appropriate
//
backfillStream = function(mostRecentActivity) {
var backfillSocket = new WebSocket("ws://" + socketDomain + ":8080/backfill");
var recentId = mostRecentActivity._id;
backfillSocket.onopen = function() {
var followingIds = _(store.get("following")).map(function(obj) {
return obj.id;
});
if (currentPage == "publisher") {
followingIds = [publisherId];
}
requestObject = { 'since_id':recentId, 'following_ids':followingIds };
backfillSocket.send(JSON.stringify(requestObject));
};

backfillSocket.onmessage = function(payload) {
addToStream(JSON.parse(payload.data).reverse());
liveStream();
};
};

//
// Connect to the live stream
//
liveStream = function() {
var liveSocket = new WebSocket("ws://" + socketDomain + ":8080/live");
liveSocket.onmessage = function(payload) {
addToStream(JSON.parse(payload.data).reverse());
};
var sinceId = mostRecentActivity._id;
var followingIds = '';
_(store.get("following")).map(function(obj) {
followingIds = followingIds + obj.id + ',';
});
if (currentPage == "publisher") {
followingIds = publisherId;
}
var requestURL = '/latest?following_ids=' + followingIds + '&since_id=' + sinceId;
$.getJSON(requestURL, function(data) {
addToStream(data.reverse());
setTimeout(function() {backfillStream(_(store.get('recentActivities')).last());}, 60000);
});
};

//
Expand Down

0 comments on commit fbc5063

Please sign in to comment.