Difference between revisions of "Peer-socket.as"

From Organic Design wiki
(Add periodic retry to socket.reduce())
(Push socket onto reduction[], not socket.reduce())
Line 46: Line 46:
  
 
// needed since socket isn't made with createSymbol()
 
// needed since socket isn't made with createSymbol()
reduction.push( socket.reduce );
+
reduction.push( socket );

Revision as of 03:27, 29 March 2006

// Establish a connection with Gir (wikid.pl) // - Gir will spawn a dedicated peerd child in response to a valid connection request socket = new XMLSocket(); socket.connected = false;

// Connect to our host to establish stream socket.connect = function( peer ) { var peer = peer.split(':'); if ( peer.length == 1 ) peer.push(80); if ( socket.connect( peer[0], peer[1] ) ) echo( 'Connecting to '+peer[0]+':'+peer[1], 'ffffff' ); else echo( 'Could not initialise connection!', 'ff0000' ); };

// When connected, send login info socket.onConnect = function( success ) { if ( this.connected = success ) { echo( 'Connected.', '00ff00' ); sendMessage( 'Hello?' ); } else echo( 'Connection failed!', 'ff0000' ); };

// Decode incoming message socket.onData = function( data ) { echo( 'Message received:', '00ff00' ); echo( data, 'ffff00' ); };

socket.onClose = function() { this.connected = false; echo( 'Connection closed!', 'ff0000' ); };

socket.reduce = function() { if ( !this.connected && ++this.ctr % 50 == 0 ) this.connect( 'organicdesign.co.nz', 1729 ); };

// Send a message to the associated peer function sendMessage( content ) { echo( 'Sending message: "'+content+'"', 'ffffff' ); _root.socket.send( content + "\x0d\x0a\x0d\x0a" ); }


// needed since socket isn't made with createSymbol() reduction.push( socket );