Difference between revisions of "Livelets.as"

From Organic Design wiki
m
m
Line 6: Line 6:
  
 
// Properties
 
// Properties
static var app : live;
+
static var app   : live;
var socket     : XMLSocket;
+
static var socket : XMLSocket;
 
 
static function log(entry) {
 
return entry;
 
}
 
  
 
// Entry point
 
// Entry point
Line 20: Line 16:
 
// Constructor
 
// Constructor
 
function live() {
 
function live() {
 +
 +
// Create new socket
 +
this.socket = new XMLSocket();
 +
this.socket.connected = false;
 +
_root.onEnterFrame = this.reduce;
  
 
// When connected, send login info
 
// When connected, send login info
Line 52: Line 53:
 
this.send('GET '+request+' HTTP/1.1'+String.fromCharCode(13,10,13,10));
 
this.send('GET '+request+' HTTP/1.1'+String.fromCharCode(13,10,13,10));
 
};
 
};
 
// Create new socket
 
this.socket = new XMLSocket();
 
socket.connected = false;
 
_root.onEnterFrame = socket.reduce;
 
  
 
}
 
}

Revision as of 03:14, 7 May 2007

// Extension:Livelets // - See http://www.mediawiki.org/wiki/Extension:Livelets for installation and usage details // - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)Template:As{{#security:*|dev}}{{#security:view|*}}

class live {

// Properties static var app  : live; static var socket : XMLSocket;

// Entry point static function main(mc) { app = new live(); }

// Constructor function live() {

// Create new socket this.socket = new XMLSocket(); this.socket.connected = false; _root.onEnterFrame = this.reduce;

// When connected, send login info socket.onConnect = function(success) { if (this.connected = success) { log('Connected.'); // request a dedicated peerd child spawn to handle this stream this.request('/connect/peer/interface'); } else { log('Connection failed!'); log('Will retry soon...'); } };

// Decode incoming message socket.onData = function(data) { log('Message received:'); log(data); };

socket.onClose = function() { this.connected = false; log('Connection closed!'); this.ctr = 1; log('Will retry soon...'); };

// Send a message to the associated peer socket.request = function(request) { log('Sending message: "'+request+'"'); this.send('GET '+request+' HTTP/1.1'+String.fromCharCode(13,10,13,10)); };

}

// Called periodically (per frame) function reduce() { // if (!this.socket.connected && ++this.ctr%250 == 1) this.peerConnect('organicdesign.co.nz',1729); }

// Connect to our host to establish stream function peerConnect(domain,port) { if (this.socket.connect(domain,port)) log('Connecting to '+domain+':'+port); else log('Could not initialise connection!'); } }