/[meteor]/googlecode.com/svn/trunk/public_html/poll.html
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /googlecode.com/svn/trunk/public_html/poll.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 9 by andrew.betts, Fri Dec 8 16:52:58 2006 UTC revision 39 by andrew.betts, Sat Feb 2 16:49:20 2008 UTC
# Line 1  Line 1 
 <html>  
 <body>  
 <script type="text/javascript">  
 window.onError = null;  
 var domainparts = document.domain.split(".");  
 var thisdomain = document.domain;  
 var topdomain = domainparts[domainparts.length-2]+"."+domainparts[domainparts.length-1];  
 document.domain = topdomain;  
 var lastrequesttime = 0;  
 var pollreq = false;  
 var polltimer = false;  
 var i=0;  
 var isaborted = 0;  
 parent.Meteor.register(this);  
   
 Function.prototype.bind = function(obj) {  
         var method = this,  
         temp = function() {  
                 return method.apply(obj, arguments);  
         };  
         return temp;  
 }  
   
 function newXmlHttp() {  
         var xmlhttp;  
         /*@cc_on @*/  
         /*@if (@_jscript_version >= 5)  
                 try {  
                         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");  
                 } catch (e) {  
                         try {  
                                 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  
                         } catch (E) {  
                                 xmlhttp = false;  
                         }  
                 }  
         @end @*/  
         if (!xmlhttp && typeof XMLHttpRequest!='undefined') {  
                 xmlhttp = new XMLHttpRequest();  
         }  
         return xmlhttp;  
 }  
   
 function poll() {  
         isaborted = 0;  
         try {  
                 clearTimeout(polltimer);  
         } catch (e) {}  
         var byteoffset = 0;  
         var newdata;  
         document.domain = topdomain;  
         var url = "http://"+location.hostname+"/push?channel="+get("channel")+"&id="+get("MHostId")+"&persist="+get("persist")+"&template=2";  
         if (get("lastmsgreceived") >= 0) {  
                 url += "&restartfrom="+(get("lastmsgreceived")+1);  
         } else if (get("backtrack") > 0) {  
                 url += "&backtrack="+get("backtrack");  
         } else if (typeof(get("backtrack")) != "number") {  
                 url += "&restartfrom=";  
         }  
         if (get("maxmessages") && get("persist")) url += "&maxmessages="+get("maxmessages");  
         var now = new Date();  
         var t = now.getTime();  
         url += "&nocache="+t;  
         try {  
                 document.domain = thisdomain;  
         } catch (e) {}  
         pollreq = newXmlHttp();  
         pollreq.onreadystatechange = handleresponse;  
         pollreq.open("GET", url, true);  
         lastrequesttime = t;  
         if (get("polltimeout")) polltimer = setTimeout(ptimeout, get("polltimeout"));  
         pollreq.send(null);  
         document.domain=topdomain;  
 }  
   
 function handleresponse() {  
         if (typeof(pollreq) == "object" && pollreq.readyState == 4 && !isaborted) {  
                 try {  
                         clearTimeout(polltimer);  
                 } catch (e) {}  
                 if (typeof(topdomain) == "undefined") return false;  
                 document.domain=topdomain;  
                 newdata = pollreq.responseText;  
                 var x = newdata.indexOf("parent.Meteor.setServerTime(");  
                 if (x != -1) {  
                         y = newdata.indexOf(");", x);  
                         if (y != -1) eval(newdata.substring(x,y+2));  
                 }  
                 while (1) {  
                         var x = newdata.indexOf("<s"+"cript>p(");  
                         if (x != -1) {  
                                 y = newdata.indexOf("</"+"script>", x);  
                                 if (y != -1) {  
                                         eval(newdata.substring((x+8),y));  
                                         newdata = newdata.substring(y+9);  
                                 } else {  
                                         break;  
                                 }  
                         } else {  
                                 break;  
                         }  
                 }  
                 var now = new Date();  
                 var t = now.getTime();  
                 var x = get("pollfreq") - (t-lastrequesttime);  
                 if (x < 10) x = 10;  
                 setTimeout(poll, x);  
         }  
 }  
   
 function ptimeout() {  
         isaborted = 1;  
         pollreq.abort();  
         delete pollreq;  
         clearTimeout(polltimer);  
         var now = new Date();  
         var t = now.getTime();  
         var x = get("pollfreq") - (t-lastrequesttime);  
         if (x < 10) x = 10;  
         setTimeout(poll, x);  
 }  
   
 poll();  
   
 </script>  
 </body>  
 </html>  
1    <html>
2    <body>
3    <script type="text/javascript">
4    window.onError = null;
5    var domainparts = document.domain.split(".");
6    var thisdomain = document.domain;
7    var topdomain = domainparts[domainparts.length-2]+"."+domainparts[domainparts.length-1];
8    document.domain = topdomain;
9    var lastrequesttime = 0;
10    var pollreq = null;
11    var polltimer = false;
12    var i=0;
13    var isaborted = 0;
14    parent.Meteor.register(this);
15    
16    function newXmlHttp() {
17            try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
18            try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
19            try { return new XMLHttpRequest(); } catch(e) {}
20            return null;
21    }
22    
23    function poll() {
24            isaborted = 0;
25            pollreq = null;
26            try {
27                    clearTimeout(polltimer);
28            } catch (e) {}
29            var byteoffset = 0;
30            var newdata;
31            try {
32                    var url = parent.Meteor.getSubsUrl();
33            } catch(e) {
34                    return false;
35            }
36            if (typeof(url)!="undefined") {
37                    pollreq = newXmlHttp();
38                    pollreq.onreadystatechange = handleresponse;
39                    pollreq.open("GET", url, true);
40                    var now = new Date();
41                    var t = now.getTime();
42                    lastrequesttime = t;
43                    if (parent.Meteor.polltimeout) polltimer = setTimeout(ptimeout, parent.Meteor.polltimeout);
44                    pollreq.send(null);
45            }
46    }
47    
48    function handleresponse() {
49            if (typeof(pollreq) == "object" && pollreq.readyState == 4 && !isaborted) {
50                    try {
51                            clearTimeout(polltimer);
52                    } catch (e) {}
53                    try {
54                            var y = parent.Meteor.getSubsUrl();
55                    } catch (e) { return false };
56                    newdata = pollreq.responseText;
57                    while (1) {
58                            var x = newdata.indexOf("<s"+"cript>p(");
59                            if (x != -1) {
60                                    y = newdata.indexOf("</"+"script>", x);
61                                    if (y != -1) {
62                                            eval(newdata.substring((x+8),y));
63                                            newdata = newdata.substring(y+9);
64                                    } else {
65                                            break;
66                                    }
67                            } else {
68                                    break;
69                            }
70                    }
71                    if (parent.Meteor.status) {
72                            var now = new Date();
73                            var t = now.getTime();
74                            var x = parent.Meteor.pollfreq - (t-lastrequesttime);
75                            if (x < 10) x = 10;
76                            pollreq = null;
77                            setTimeout(poll, x);
78                    }
79            }
80    }
81    
82    function ptimeout() {
83            isaborted = 1;
84            pollreq.abort();
85            pollreq = null;
86            clearTimeout(polltimer);
87            var now = new Date();
88            var t = now.getTime();
89            var x = parent.Meteor.pollfreq - (t-lastrequesttime);
90            if (x < 10) x = 10;
91            setTimeout(poll, x);
92    }
93    
94    poll();
95    
96    
97    </script>
98    </body>
99    </html>

Legend:
Removed from v.9  
changed lines
  Added in v.39

  ViewVC Help
Powered by ViewVC 1.1.26