Compare commits

...

3 Commits
0.3.3 ... 0.3.5

Author SHA1 Message Date
Guillermo Rauch
0ad237ddf5 Fix for stream not writable problems 2010-05-28 05:28:25 -03:00
Guillermo Rauch
3134940ed6 Updated io.Socket initialization to work on hosts other than localhost
Updated client
2010-05-27 21:45:01 -03:00
Guillermo Rauch
0f783bc06a Fixed htmlfile
- end > close for detecting closed connections
 - Added hearbeats
 - added flush() in write
2010-05-27 21:33:07 -03:00
5 changed files with 26 additions and 13 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

@@ -55,9 +55,13 @@ this.websocket = Client.extend({
},
_write: function(message){
this.connection.write('\u0000', 'binary');
this.connection.write(message, 'utf8');
this.connection.write('\uffff', 'binary');
try {
this.connection.write('\u0000', 'binary');
this.connection.write(message, 'utf8');
this.connection.write('\uffff', 'binary');
} catch(){
this._onClose();
}
}
});

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;

View File

@@ -25,7 +25,7 @@
document.getElementById('text').value = '';
}
var socket = new io.Socket('localhost', {rememberTransport: false, port: 8080});
var socket = new io.Socket(null, {rememberTransport: false, port: 8080});
socket.connect();
socket.addEvent('message', function(data){
var obj = JSON.parse(data);