Difference between revisions of "Peer-socket.as"

From Organic Design wiki
m
(Add periodic retry to socket.reduce())
Line 2: Line 2:
 
// - Gir will spawn a dedicated peerd child in response to a valid connection request
 
// - Gir will spawn a dedicated peerd child in response to a valid connection request
 
socket = new XMLSocket();
 
socket = new XMLSocket();
 +
socket.connected = false;
  
 
// Connect to our host to establish stream
 
// Connect to our host to establish stream
if ( socket.connect( 'organicdesign.co.nz', 1729 ) ) echo( 'Connecting...', 'ffffff' );
+
socket.connect = function( peer ) {
else echo( 'Could not initialise connection!', 'ff0000' );
+
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
 
// When connected, send login info
 
socket.onConnect = function( success ) {
 
socket.onConnect = function( success ) {
if ( success ) {
+
if ( this.connected = success ) {
 
echo( 'Connected.', '00ff00' );
 
echo( 'Connected.', '00ff00' );
 
sendMessage( 'Hello?' );
 
sendMessage( 'Hello?' );
Line 23: Line 29:
  
 
socket.onClose = function() {
 
socket.onClose = function() {
 +
this.connected = false;
 
echo( 'Connection closed!', 'ff0000' );
 
echo( 'Connection closed!', 'ff0000' );
 +
};
 +
 +
socket.reduce = function() {
 +
if ( !this.connected && ++this.ctr % 50 == 0 )
 +
this.connect( 'organicdesign.co.nz', 1729 );
 
};
 
};
  
Line 29: Line 41:
 
function sendMessage( content ) {
 
function sendMessage( content ) {
 
echo( 'Sending message: "'+content+'"', 'ffffff' );
 
echo( 'Sending message: "'+content+'"', 'ffffff' );
_root.socket.send( content + "\r\n\r\n" );
+
_root.socket.send( content + "\x0d\x0a\x0d\x0a" );
 
}
 
}
 +
 +
 +
// needed since socket isn't made with createSymbol()
 +
reduction.push( socket.reduce );

Revision as of 03:25, 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.reduce );