Livelets.as

From Organic Design wiki
Revision as of 02:24, 5 July 2007 by Nad (talk | contribs) (no perms)

// 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:AsScripts and articles related to Extension:Livelets, see also Wiklets

// All this needs to do is unintelligently route incoming update messages to the recipient livelets by id // - each message can just be update:id1,id2,id3,id4... which executes the $wgLiveletsUpdate code for each id // - remember that the SWF binary needs to be served from livelets.pl

class live {

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

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

// Constructor function live() {

// Initialise objects this.socket = new XMLSocket(); _root.connected = false; _root.ctr = 1; _root.onEnterFrame = this.reduce; _root.log = this.log;

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

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

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

}

function log(entry) { return entry; }

// 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 this.log('Could not initialise connection!'); }

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