Try to reconnect to tvheadend's comet feed if we get disconnected.

This commit is contained in:
Andreas Öman 2009-07-12 19:55:24 +00:00
parent de759a1f88
commit 57c9329149

View file

@ -21,35 +21,48 @@ tvheadend.comet = new Comet();
tvheadend.cometPoller = function() {
var failures = 0;
var boxid = null;
var cometRequest = new Ext.util.DelayedTask(function() {
Ext.Ajax.request({
url: 'comet',
params : boxid ? { boxid: boxid } : null,
success: function(result, request) {
parse_comet_response(result.responseText);
if(failures > 2) {
tvheadend.log('Reconnected to Tvheadend',
'font-weight: bold; color: #080');
}
failures = 0;
},
failure: function(result, request) {
cometRequest.delay(failures > 10 ? 5000 : failures * 500);
if(failures > 2) {
tvheadend.log('There seems to be a problem with the ' +
'live update feed from Tvheadend. ' +
'Trying to reconnect...',
'font-weight: bold; color: #f00');
}
failures++;
}
});
});
function parse_comet_response(responsetxt) {
response = Ext.util.JSON.decode(responsetxt);
boxid = response.boxid
for(x = 0; x < response.messages.length; x++) {
m = response.messages[x];
tvheadend.comet.fireEvent(m.notificationClass, m);
}
Ext.Ajax.request({
url: '/comet',
params : { boxid: response.boxid },
success: function(result, request) {
parse_comet_response(result.responseText);
},
failure: function(result, request) {
tvheadend.log('Connection to server lost' +
', please reload user interface',
'font-weight: bold; color: #f00');
}
});
cometRequest.delay(100);
};
Ext.Ajax.request({
url: '/comet',
success: function(result, request) {
parse_comet_response(result.responseText);
}
});
cometRequest.delay(100);
}