-<html>
+<?php
+function mop_flush()
+{
+ ob_flush();
+ flush();
+}
+
+ $s =
+"GGZDGDRBXDWFXHGPYAAVDXEKFDUWSTEDTDVXBXQPMZAIFPNLRPTWMJAZRHXTIRNZ"
+."HTZXAUVJDCLXENDCLIZXSSEQQGUADYEKNNANJWEGRUFHPLUNSEROZQJSLMUYNUVG"
+."FPLQAGCMTTGIRRXZFBFQFTRBYPHTWFSXFKHKYBRDAOSOURCMEVGPVXJVUQAOCFPV"
+."OQSUBOYWOZLDGRPQQIBNOTHFUHTCRRZOBCUONAXIYUYCJBFTVNWIITVHBYLNMPWR"
+."LPMMIROZVRUNYXSJSMJINSXGACXDMJAEPNFFAERHVDJELXSPPJWKMNFGVGAPTIMR"
+."VMVMVCLWKMPOAJWZGPSPFEXVNQANXGLZIQSCBIYVFSTXZOODZYCXUVUZFCLFGHUJ"
+."TXZWFHSMFJQAZOQRANKZJAUJHFJIKHIIEQUSDXUBRPQBKMIAVTWYQEOIMYKKDTEV"
+."EYERPXKFJXWNIMJPOFFMWJCJSLFZKPNRNVXIDLUSRVBGLUCQZCUQCZNAORDXMRSS"
+."UBNMPXJDQXXLMQRCTOCCJJWHFSUWBNWXWZHPKWYYKPZIMBXTYAZXJJQSBLNAQGJI"
+."AIXZUHNTQYFSGUYMVOWEGUWWRBEMRJHXXOMLRXXWJZLPGLMKEANZWWXIXPIUTURJ"
+."TCXYIKIPNTSUIOWBCEVQHLTHYQNGBHAOPREWGJVOQKNUKTXVTMBRHCERDGYWQVXB"
+."BCZUGMIJXALLIOSXCYMEIDNTPLGRMKXKVFKWGRFKCBIRASOOYIFTLXFSBEOJSDFN"
+."PHSWPGERDYIGUPDXUBSAFCHTPJNBORIRMAOCKGAMFFZUBTVSGEEFMYMEBPUVCRSP"
+."DEEAROBQLJHNMCDAFMPLUKNZXTTJJIULUTDTLEZLVMRLKNLXGCQIGFCBHEWDHNPW"
+."VRONBYCXVRGNQUMFSRADSIFLNRMQXAZKQUKYXGOAKTSLWVSBJMQYZMULCNYKFFUC"
+."LKIPNJOURQLYDHLZYPHEJXPBYTXTGVZOGQUZXAORYINAOTRJCNEDPAXSJIQICWEY"
+."UEJPQALSYHKYZLPJTMBLIDNFRFLTIOVZZTEWPSJCUNDWUDZWJKDDRJEXOICJBSYP"
+."ZHLECBYVMMYLCCPCSVOVPEHEWQDJYSCOWTKFHTWVTSBCQSFKQFCNTGOQBEPSEXKR"
+."AMJIKXZCWLPXMEUBLRJHNEVGMTGARBOBLOYPWUCWSBVTMZBIBRDCNOYXLPSDZODN"
+."JSZXXQUCJZKIYOCCRHYALAJSYXFMWBAOIVAJWIAPOECUJAMFPCOCZDBDHRTBUWWJ"
+."EJYZESNKIXFEBENSOHLCNSQPWGGJLOMTFEZVWWQAKPIFGUUUMWOKLXDUPFMOEKQG"
+."ELOIQAUJPPIJZWKTCYQTJWXCBJMQWIOLQWJIASSXSFLWGUSETHRKEJHCHBOFLJJC"
+."KPPLOTKBXSKUOSNSFHOJRCKXOKQHETCGSMABVALDSBAXBQRFNNJGIDZMNUYQYDHX"
+."DJAHJBJSUEHADPSHOPOXEIRQPEAJEMEBWNXTOSGEQFUVXVHZDYHRUXCRICUHYUHA"
+."FXXGTKWVDDMDSLXEVKZUNTEUKWAGSAWPHGQHEBUMQDHZDVIFVFNDXDUEVZVGSBCQ"
+."STWYUOIHBOQQBAIAQJVNDZQVWHNXHMROIMXNCZRHYXUBFYLEZTWFCYOVILASEFSH"
+."ZUQSNNTYEOCSTRDJPFHCPTDEWCQNEDFOQCZMXKCFIANKWOVDARXWRUCTPYPGTEZB"
+."PERZIMOHRCNBYYJVYFBQJARSULMIAQPILDHEMKNVWMGFQBGZRSQZWZBMSDYKLOTA"
+."VUILKBJADGDTEZENLJEOYPXIXJWIJXONTLXBRLIJFQZORAJIIZQRCUOZLVUTIHXI"
+."NDRVVDJTEIKVLKZVRWHINEYVRGJHXLRNDCNFIYFRUUWMKKGHCPWLZKFULMJOIGJZ"
+."OONOCNPLEJIBKYFDGEQEMMWYBNBWPDRCEIUMFTYAULDBHSHAGPFWVTZXYQGUAXYN"
+."JGGOAMNBBFFSCDSXRTPOHBOVZEXYKAENIWSMBOXGQQTDTIBPSXFHMQUMMKNYYWIC"
+."MFDWSMZDWHGCEWQHFTIMDGTMCEFKWMBAVPEBTCKHRRTLAYEGZTINIWYCUJRZMBPS"
+."TLLEDLEPSAFMQPHYNJWBSSXKEMKLEZIAVNYIOUOTKGYUYJBKBSBQCFRXKOQABUWF"
+."YCNLGXGTLWMLEJVSNDIAMYSXSYFLMNGBOZSREPCPQLRCLNYFVKTWUWBNYAPZTJVO"
+."ONEPJBVBIOPBGVUNWUWZZBJEBDWUWUNFDBOICCGKXDBQWSWFUMIYRCXHLDWFKDUO"
+."PBGTXWNOMUEBENXMARIGPKDETSZNTRODQZYNJJDMYSUBOLPWOEWEVESPLXIKLELG"
+."DCIPTCCKJNNDBRCNVNHVZWPKWPUWLSOORQHNXRBZHHIYPJNBIRCZCIGGEMYKNWXV"
+."TLCLXTIYRVUXONAJUCNMWHNMUSHRWHOEQTTGYJRJEZKNHLVUXUKQQYREZXWRNQKO"
+."BDZTUGIKACSXLRJLESYYPLRFCFVSWJSZYPJBLBTPSEGUZOEXDIXEVWZJEOMOJOIB"
+."QNXNFUXBRJYXMDXQOLVWVLZZMTEMTYRZBWUEEFIBOWXAPKEIQIZZCLMWAOBZVFTP"
+."QQPBYCCLEYRLXVBPMUUMUDPECMDFSVJNKKAEMBYJJXMZGWYTAHECIXAFGWAOGIWV"
+."GAOHCMVHJZVWZCHJWGJJDBZNDXPXOYTDVZEDPWZIIMQVCQPLQIEOSRPVVICTZKGX"
+."JXSFDFUHKKOTXTEGLDSCAODMCVGSSEYANCXJDATMRJRIDLLIJHINSOXJQDEABCVU"
+."WFXWKXJQEREZDLOVUQHYBESHNJWTESPNDVIKYLCTNQEVVUXAWFNQEYIVZXNMJEPL"
+."MFMTOKXXFQYYVBHAXYQVUBALQLSNJSVOTZDDTOZMUEVZJATXQNQVSFXWTGACHUDD"
+."QXCPCRLSREKXHKJNUYUJGIGCNWXUSXOGGYPQWFZDJCKKZONXJUSJKBYIPJSMPVIN"
+."UFBIFNROMBTKQPBIZYJWLPQIJLNTLHTUEWFINOQQDAHCXXKVADTEDBANOPIJBXXC"
+."NAEZOVJAISUQBCBNOYIJBXMRPYPKXBFKFVGQLOEFPOCTZHJXKGUPZQPZOZWXXSSH"
+."SLBGVGVPRAFJCVRKWLSWLMHBMYOKVJDCZSQBLTGSOJDJHOVIDEBKJZNAQYLFIEYS"
+."AYHOSGGDDJAAVTMBYFREMEPLWZXYZUYYRQWKQBLKAPDXMMHCBWSARJCHPGZFCVJG"
+."OXXKCMWTVMKHUUSUMQOGNIHKIIAXNOAHPRIWHDOBJTRKSZAKOMHWTPQQXGZBOPIP"
+."FQEVUBULHGESOARVICLMSUSHHTVYLFMLHFGKJNPYIYEMLBAZMLIDDSWRCVFOUSGC"
+."TUQHWTUHRJUZHYQOKTWTLRVOSWRPSYBOBSZHZLRZEIZKKCMLNYICCUTIXNXETTKL"
+."PYIFTUDCMWRQBZDROXTTVTAOOIQHIWOZESRHKPNGNCSHNAVEWUSGOTZCRNFSIXGF"
+."QJUMUFPEZBFPOVGZZDCGDKEODSWAPNDNHVJUQDYLCXWNXSCDFFFPBTDOIZIZLBBP"
+."ZXZYWTTPEUUCKXGBTXAJBAXYLMUVWWGWZYTXTKYVRXSOXOBHERLZJPRDXIQZRQLU"
+."TXCLIJNKIRWMVQEJTLHZIDTNGBOYSULGWUTSYTKGNMGZFWKXCCZXGOQGZNQFZJUK"
+."JMBQPQPZOPYTQMPEFTZUDLIIBZAZSZAPNILMIKMPKXJIRHRQMFSTJKAPIIQWOFYQ"
+."HGANJGJSUGDIENDVEQFEMUJBGMZBPHLOARCVGMUUCHLCDDNKSJSCKYSALUAGUZFN"
+."YVURVLREBESGXPANIDKGLPJZGXLKFKTPEQBQEINOYYZTBMPFBLBKIKVPAPFDKKRZ"
+."YMVUBYCYTRXCIICUPTXKGQOIJSVSWPYVALIROWGVXDXGNSRVZOLEJHNRSUKHNTRJ"
+."LQZQKBEFXYKIPXJRZMQMJKUGCNUKBZBWABPLHMAJJZVBCWOQYCLSGDUKJSTHTVXV"
+."OUGJVADGJWGVNBNXYRZDSNLOZDIQRKOQAKJJDKXRMMTXRVTLOMTETNROPDYNXAGR";
+?><html>
<head>
<script type="text/javascript" src="xynt/xynt-console.js"></script>
<script type="text/javascript" src="xynt/xynt-http-streaming-ifra.js"></script>
<script type="text/javascript">
var http_streaming = "ready";
-window.onload = function () { if (http_streaming != "ready") http_streaming.reload(); };
+window.onload = function () { if (http_streaming != "ready") { http_streaming.reload(); } };
</script>
</head>
<body onabort = "console.log('rd abort');" onunload = "console.log('rd unload');" onerror = "console.log('rd error');" onkeypress = "console.log('rd keypress');">
</body>
<?php
-function mop_flush()
-{
- ob_flush();
- flush();
-}
-
function main()
{
- GLOBAL $st;
+ GLOBAL $st, $s;
- if (!isset($st)) {
- $st = 0;
- }
+ $fp = fopen("/tmp/test-hs-rd.log", "a");
+ fwrite($fp, "START [$s] $st\n");
+ fclose($fp);
- $fp = fopen("/tmp/test-hs-rd.log", "a");
- fwrite($fp, "START\n");
- fclose($fp);
-
- $s = "";
- for ($i = 0 ; $i < 4096 ; $i++) {
- $s .= rand(65,90);
- }
+ echo("<!-- ");
+ echo($s);
+ echo(" -->\n");
+ mop_flush();
$to = rand(10,20);
for ($first = true, $i = $st+1 ; $i < $st+$to ; $i++, $first = false) {
- // if ($i == 0)
- // sleep(1);
-
- if ($i == $st+8) {
+ if ($i == 8 /*+$st*/) {
// exit();
- sleep(30);
- }
+ if ($first == true) {
+ sleep(5);
+ }
+ else {
+ // exit();
+ sleep(30);
+ }
+ }
-printf("<script id='hs%d' type='text/javascript'>
+ if ($i > 10 && $i < 20) {
+ printf("<script id='hs%d' type='text/javascript'>
+push(null);
+</script>", $i, $i);
+ }
+ else {
+ printf("<script id='hs%d' type='text/javascript'>
push(\"$('cont').innerHTML += '%s %d'; gst.st = %d;\");
</script>", $i, ($first ? "<br/>" : ""), $i, $i);
+ }
- if ($first)
- printf("<!-- %s -->", $s);
mop_flush();
usleep(1000000);
}
cmdproc: null,
comm_match: /_*@BEGIN@(.*?)@END@/g,
comm_clean: /_*@BEGIN@(.*?)@END@/,
- ctx_old: "",
ctx_old_len: 0,
// ctx_new: "",
ctx_new_len: 0,
this.ifra.style.visibility = "hidden";
this.doc.body.appendChild(this.ifra);
if (page != null)
- this.page = page;
+ this.page = url_complete(this.win.location.href, page);
this.page = url_append_args(this.page, "sess", this.sess, "st", this.gst.st);
this.log(this.page);
watchdog: function () {
var i, again;
var comm_newpart, comm_len, comm_arr;
+ var ctx_new_len;
// WATCHDOGING THE CONNECTION
+ this.log("hs::watchdog: start, cur equal times: "+this.keepalives_equal);
if ( (this.watchdog_ct % this.watchdog_checktm) == 0 || !this.watchable) {
- this.log("hs::watchdog: start, cur equal times: "+this.keepalives_equal);
if (!this.watchable) {
do {
if (typeof(this.ifra.contentWindow.http_streaming) == 'undefined')
again = 0;
if (typeof(this.ifra.contentWindow.ctx_new) == 'undefined')
break;
- if (this.ifra.contentWindow.ctx_new.length == this.ctx_old_len) {
- // this.ctx_new = this.ctx_old = "";
- // FIXME find a more robust clean method
+
+ ctx_new_length = this.ifra.contentWindow.ctx_new.length;
+ if (ctx_new_length == this.ctx_old_len) {
break;
}
- this.log("new: "+ this.ifra.contentWindow.ctx_new.length + " old: "+this.ctx_old_len);
+ this.log("new: "+ ctx_new_length + " old: "+this.ctx_old_len);
this.keepalive_new++;
- for (i = this.ctx_old_len ; i < this.ifra.contentWindow.ctx_new.length ; i++) {
- if (this.ifra.contentWindow.ctx_new[i] != '_')
+ for (i = this.ctx_old_len ; i < ctx_new_length ; i++) {
+ if (this.ifra.contentWindow.ctx_new.charAt(i) != '_') {
+ this.log("ctx_new.char(i) != '_' ["+this.ifra.contentWindow.ctx_new.charAt(i)+"]");
break;
+ }
+ else {
+ this.log("ctx_new.charAt(i) == '_'");
+ }
}
- if (i == this.ifra.contentWindow.ctx_new.length) {
- this.ctx_old_len = i;
+ this.ctx_old_len = i;
+ if (i == ctx_new_length) {
+ this.log("old_len == i");
break;
}
+ else {
+ this.log("old_len != i: "+i);
+ }
comm_newpart = this.ifra.contentWindow.ctx_new.substr(this.ctx_old_len);
comm_len = 0;
comm_arr = comm_newpart.match(this.comm_match);
// XX alert("COMM_ARR["+i+"]: "+comm_arr[i]+" LEN:"+comm_arr[i].length);
comm_len += comm_arr[i].length;
}
- this.ctx_old += comm_newpart.substr(0,comm_len);
again = 1;
}
- this.ctx_old_len = this.ctx_old.length;
+ this.ctx_old_len += comm_len;
} while (again);
delete this.ifra;
this.ifra = null;
}
- this.ctx_old = "";
this.ctx_old_len = 0;
},