/[meteor]/googlecode.com/svn/trunk/public_html/stream.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

Contents of /googlecode.com/svn/trunk/public_html/stream.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9 - (show annotations)
Fri Dec 8 16:52:58 2006 UTC (17 years, 3 months ago) by andrew.betts
File MIME type: text/html
File size: 2534 byte(s)


1 <html>
2 <body>
3 <script type="text/javascript">
4 window.onError = null;
5 var domainparts = document.domain.split(".");
6 document.domain = domainparts[domainparts.length-2]+"."+domainparts[domainparts.length-1];
7 parent.Meteor.register(this);
8 var streamreq;
9 var byteoffset;
10
11 Function.prototype.bind = function(obj) {
12 var method = this,
13 temp = function() {
14 return method.apply(obj, arguments);
15 };
16 return temp;
17 }
18
19 function abort() {
20 streamreq.abort();
21 }
22
23 function newXmlHttp() {
24 var xmlhttp;
25 /*@cc_on @*/
26 /*@if (@_jscript_version >= 5)
27 try {
28 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
29 } catch (e) {
30 try {
31 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
32 } catch (E) {
33 xmlhttp = false;
34 }
35 }
36 @end @*/
37 if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
38 xmlhttp = new XMLHttpRequest();
39 }
40 return xmlhttp;
41 }
42
43 function startstream() {
44 streamreq = newXmlHttp();
45 byteoffset = 0;
46 var url = "http://"+location.hostname+"/push?channel="+get("channel")+"&id="+get("MHostId")+"&template=2";
47 if (get("lastmsgreceived") >= 0) {
48 url += "&restartfrom="+(get("lastmsgreceived")+1);
49 } else if (get("backtrack") > 0) {
50 url += "&backtrack="+get("backtrack");
51 } else if (typeof(get("backtrack")) != "number") {
52 url += "&restartfrom=";
53 }
54 var now = new Date();
55 var t = now.getTime();
56 url += "&nocache="+t;
57 streamreq.open("GET", url, true);
58 streamreq.onreadystatechange = handleresponse.bind(streamreq);
59 streamreq.send(null);
60 }
61
62 function handleresponse() {
63 if (this.readyState == 3) {
64 var buffer = this.responseText;
65 var newdata = buffer.substring(byteoffset);
66 byteoffset = buffer.length;
67 var x = newdata.indexOf("parent.Meteor.setServerTime(");
68 if (x != -1) {
69 y = newdata.indexOf(");", x);
70 if (y != -1) eval(newdata.substring(x,y+2));
71 }
72 while (1) {
73 var x = newdata.indexOf("<s"+"cript>p(");
74 if (x != -1) {
75 y = newdata.indexOf("</"+"script>", x);
76 if (y != -1) {
77 eval(newdata.substring((x+8),y));
78 newdata = newdata.substring(y+9);
79 } else {
80
81 // Last message is corrupt or incomplete. Ignore it and it will be fetched again
82 break;
83 }
84 } else {
85
86 // No more messages
87 break;
88 }
89 }
90 byteoffset = buffer.length-newdata.length;
91 } else if (this.readyState == 4) {
92 delete streamreq;
93 if (typeof(startstream)=="function") {
94 startstream();
95 } else if (typeof(r)=="function") {
96 r();
97 }
98 }
99 }
100
101 startstream();
102 </script>
103 </body>
104 </html>

  ViewVC Help
Powered by ViewVC 1.1.26