Fixed htmlfile

- end > close for detecting closed connections
 - Added hearbeats
 - added flush() in write
This commit is contained in:
Guillermo Rauch
2010-05-27 21:33:07 -03:00
parent dd3d829173
commit 0f783bc06a
2 changed files with 17 additions and 8 deletions

View File

@@ -8,12 +8,21 @@ this['htmlfile'] = Client.extend({
switch (req.method){
case 'GET':
this.__super__(req, res);
this.request.connection.addListener('end', function(){ self._onClose(); });
this.response.useChunkedEncodingByDefault = false;
this.request.connection.addListener('close', function(){ self._onClose(); });
this.response.useChunkedEncodingByDefault = true;
this.response.shouldKeepAlive = true;
this.response.writeHead(200, { 'Content-type': 'text/html' });
this.response.writeHead(200, {
'Content-Type': 'text/html',
'Connection': 'keep-alive',
'Transfer-Encoding': 'chunked'
});
this.response.write('<html><body>' + new Array(244).join(' '));
this.response.flush();
this._payload();
setInterval(function(){
self.response.write('<!-- heartbeat -->');
self.response.flush();
}, 1000);
break;
case 'POST':
@@ -24,7 +33,7 @@ this['htmlfile'] = Client.extend({
try {
var msg = qs.parse(body);
self._onMessage(msg.data);
} catch(e){}
} catch(e){}
res.writeHead(200);
res.write('ok');
res.end();
@@ -34,8 +43,8 @@ this['htmlfile'] = Client.extend({
},
_write: function(message){
// not sure if this is enough escaping. looks lousy
this.response.write("<script>parent.callback('"+ message.replace(/'/, "\'") +"')</script>");
this.response.write('<script>parent.s._('+ message +', document);</script>');
this.response.flush();
}
});

View File

@@ -13,10 +13,10 @@ this['xhr-polling'] = Client.extend({
var self = this, body = '';
switch (req.method){
case 'GET':
this.__super__(req, res);
this.__super__(req, res);
this._closeTimeout = setTimeout(function(){
self._write('');
}, this.options.duration);
}, this.options.duration);
this._payload();
break;