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

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

  ViewVC Help
Powered by ViewVC 1.1.26