/[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 55 - (show annotations)
Thu Feb 28 00:21:39 2008 UTC (11 years, 4 months ago) by andrew.betts
File MIME type: text/html
File size: 1678 byte(s)
Fixed: Made eof() work properly
Added nocache querystring param and modified Subscriber.pm to allow it
Rewrote stream.html to ensure we capture the last chunk of data before a reset
Incremented version

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>

  ViewVC Help
Powered by ViewVC 1.1.26