X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fxynt-http-streaming.js;h=2c43619e3658b4875e3bf9c59fb74309e62ed41a;hb=24ed800c2ca5855886af42f6f8ac4681a0089ee6;hp=f4731ce640267446605976796800fd042bbef8c6;hpb=34ccc0593731592021bee6ab1661f8eb5ab5b1a4;p=brisk.git diff --git a/web/xynt-http-streaming.js b/web/xynt-http-streaming.js index f4731ce..2c43619 100644 --- a/web/xynt-http-streaming.js +++ b/web/xynt-http-streaming.js @@ -37,10 +37,13 @@ http_streaming.prototype = { keepalive_old: -1, keepalive_new: -1, keepalives_equal: 0, - keepalives_eq_max: 6, - watchdog_timeout: 100, + keepalives_eq_max: 3, + /* NOTE: right watch_timeout value to 100, for devel reasons use 1000 or more */ + // FIXME watchdog_timeout: 200, + /* restart after 200 * 20 * 3 millisec if server ping is missing => 12secs */ + watchdog_timeout: 300, watchdog_ct: 0, - watchdog_checktm: 20, + watchdog_checktm: 14, watchable: false, restart_n: 0, comm_match: /_*@BEGIN@(.*?)@END@/g, @@ -68,9 +71,10 @@ http_streaming.prototype = { // this.log(this.ifra); this.ifra.contentWindow.location.href = this.page; + // this.ifra.src = this.page; this.watchdog_ct = 0; if (!this.the_end) { - this.watchdog_hdl = setTimeout(function(obj) { obj.log("tout1"); obj.watchdog(); }, 0, this); + this.watchdog_hdl = setTimeout(function(obj) { obj.log("tout1"); obj.watchdog(); }, this.watchdog_timeout, this); } }, @@ -91,29 +95,36 @@ http_streaming.prototype = { if (this.sandbox != null) { // from old: var zug = "POLL sess = "+sess+" stat = "+stat+" subst = "+subst+" step = "+this.gst.st+" step_loc = "+this.gst.st_loc+" step_loc_new = "+this.gst.st_loc_new+" STOP: "+this.stopped; - var zug = "WATCHDOG step = "+this.gst.st+" step_loc = "+this.gst.st_loc+" step_loc_new = "+this.gst.st_loc_new; + var zug = "WATCHDOG sess = ["+this.sess+"] step = "+this.gst.st+" step_loc = "+this.gst.st_loc+" step_loc_new = "+this.gst.st_loc_new; if (zug != this.sandbox.innerHTML) this.sandbox.innerHTML = zug; } // WATCHDOGING THE CONNECTION this.log("hs::watchdog: start, cur equal times: "+this.keepalives_equal); - if ( (this.watchdog_ct % this.watchdog_checktm) == 0 || !this.watchable) { - if (!this.watchable) { - do { + if (!this.watchable) { + do { + try{ if (typeof(this.ifra.contentWindow.http_streaming) == 'undefined') break; - /* - on IE7 the the window frame scope is cleaned after the href is set, so we wait - for a well know variable value before assign this object value to it (OO is a passion) - */ - if (this.ifra.contentWindow.http_streaming == "ready") { - this.ifra.contentWindow.http_streaming = this; - this.watchable = true; - this.log("hs::watchdog: watchable = yes"); - } - } while (false); - } + } + catch(b) { + break; + } + + /* + on IE7 the the window frame scope is cleaned after the href is set, so we wait + for a well know variable value before assign this object value to it (OO is a passion) + */ + if (this.ifra.contentWindow.http_streaming == "ready") { + this.ifra.contentWindow.http_streaming = this; + this.watchable = true; + this.watchdog_ct = 0; + this.log("hs::watchdog: watchable = yes"); + } + } while (false); + } + if ( (this.watchdog_ct % this.watchdog_checktm) == 0) { this.log("hs::watchdog: this.keepalive_old: "+this.keepalive_old+" this.keepalive_new: "+this.keepalive_new); if (this.keepalive_old == this.keepalive_new) { this.keepalives_equal++; @@ -136,9 +147,14 @@ http_streaming.prototype = { // alert("do--while begin ["+again+"]"); // CHECK: maybe again here isn't needed again = 0; - if (typeof(this.ifra.contentWindow.ctx_new) == 'undefined' || - typeof(this.ifra.contentWindow.ctx_old_len) == 'undefined') - break; + try { + if (typeof(this.ifra.contentWindow.ctx_new) == 'undefined' || + typeof(this.ifra.contentWindow.ctx_old_len) == 'undefined') + break; + } + catch(b) { + break; + } ctx_new_len = this.ifra.contentWindow.ctx_new.length; if (ctx_new_len <= this.ifra.contentWindow.ctx_old_len) { @@ -261,4 +277,4 @@ http_streaming.prototype = { return (this.console.log(s)); } } -} \ No newline at end of file +}