]> Dogcows Code - chaz/chatty/blob - extra/cometd/public_html/stream.html
import meteord-1.06
[chaz/chatty] / extra / cometd / public_html / stream.html
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 var newdata;
11
12 function abort() {
13 streamreq.abort();
14 }
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 startstream() {
24 streamreq = newXmlHttp();
25 byteoffset = 0;
26 newdata = "";
27 var url = parent.Meteor.getSubsUrl();
28 streamreq.open("GET", url, true);
29 streamreq.onreadystatechange = function() {
30 if (typeof streamreq == "undefined") return;
31 if (streamreq.readyState == 3) {
32 extractEvents(streamreq.responseText);
33 } else if (streamreq.readyState == 4) {
34 extractEvents(streamreq.responseText);
35 delete streamreq;
36 if (typeof(r)=="function") {
37 r();
38 }
39 }
40 }
41 streamreq.send(null);
42 }
43
44 function extractEvents(responsestr) {
45 newdata += responsestr.substring(byteoffset);
46 byteoffset = responsestr.length;
47 while (1) {
48 var x = newdata.indexOf("<s"+"cript>");
49 if (x != -1) {
50 y = newdata.indexOf("</"+"script>", x);
51 if (y != -1) {
52 eval(newdata.substring((x+8),y));
53 newdata = newdata.substring(y+9);
54 } else {
55
56 // Last message is incomplete. Ignore it and it will be processed next time
57 break;
58 }
59 } else {
60
61 // No more messages
62 break;
63 }
64 }
65 }
66
67
68
69 startstream();
70 </script>
71 </body>
72 </html>
This page took 0.035681 seconds and 4 git commands to generate.