Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.eightlabs.IRCLib
- {
- import com.eightlabs.utilities.*;
- import flash.events.*;
- import flash.net.*;
- import flash.system.*;
- import flash.utils.*;
- import mx.core.*;
- public class ClientConnection extends EventDispatcher
- {
- public var port:int = 7000;
- public var holdData:String = "";
- public var hosts:Array;
- private var ircLib:IRCLib = null;
- public var originalUserName:String = null;
- public var host:String = null;
- public var userID:String = "ewcflash";
- private var reconnectTimer:Timer;
- public var hostnumber:int = 0;
- private var socket:Socket;
- public var userName:String = null;
- public var passWord:String = null;
- public function ClientConnection(param1:IRCLib, param2:String, param3:int, param4:String, param5:String = "")
- {
- reconnectTimer = new Timer(5000, 1);
- hosts = ["chat.everywherechat.com", "indigo.everywherechat.com"];
- this.port = param3;
- this.originalUserName = param4;
- this.userName = param4;
- this.passWord = passWord;
- if (param5 != "")
- {
- this.userID = param5;
- }
- this.ircLib = param1;
- connect();
- return;
- }// end function
- private function socket_close(event:Event) : void
- {
- debug.write("socket_close from: " + this.host);
- this.dispatchEvent(new Event("SocketClose"));
- reconnectTimer.addEventListener("timer", reconnectHandler);
- reconnectTimer.start();
- return;
- }// end function
- private function socket_data(event:Event) : void
- {
- var _loc_2:String = null;
- var _loc_4:Array = null;
- var _loc_5:String = null;
- var _loc_3:* = new ByteArray();
- socket.readBytes(_loc_3, 0, socket.bytesAvailable);
- _loc_2 = _loc_3.toString();
- if (holdData != "")
- {
- _loc_2 = holdData + _loc_2;
- holdData = "";
- }
- _loc_4 = _loc_2.split("\r\n");
- if (_loc_2.substr(_loc_2.length - 2) != "\r\n")
- {
- holdData = _loc_4.pop();
- }
- for each (_loc_5 in _loc_4)
- {
- if (_loc_5.length > 0)
- {
- new IncomingData(ircLib, _loc_5);
- }
- }
- return;
- }// end function
- private function nextHost() : void
- {
- if (this.hostnumber == (this.hosts.length - 1))
- {
- this.hostnumber = 0;
- }
- else
- {
- var _loc_1:String = this;
- var _loc_2:* = this.hostnumber + 1;
- _loc_1.hostnumber = _loc_2;
- }
- return;
- }// end function
- public function socket_outData(param1:String) : void
- {
- socket.writeUTFBytes(param1 + String.fromCharCode(13) + String.fromCharCode(10));
- socket.flush();
- return;
- }// end function
- public function reconnectHandler(event:TimerEvent) : void
- {
- connect();
- return;
- }// end function
- private function socket_connect(event:Event) : void
- {
- this.hostnumber = 0;
- socket_outData("nick " + userName);
- socket_outData("user " + userID + " rambler irc.everywherechat.com :EveryWhereChat Rambler " + Application.application.clientVersion);
- return;
- }// end function
- public function disconnect() : void
- {
- socket.close();
- return;
- }// end function
- private function socket_ioerror(event:IOErrorEvent) : void
- {
- debug.write("socket_ioerror from: " + this.host);
- this.dispatchEvent(new Event("SocketClose"));
- reconnectTimer.addEventListener("timer", reconnectHandler);
- reconnectTimer.start();
- return;
- }// end function
- private function connect() : void
- {
- ircLib.sk = null;
- socket = new Socket();
- this.host = this.hosts[this.hostnumber];
- debug.write("Connecting to " + this.host);
- var CROSSDOMAINXML:* = "xmlsocket://" + this.host + ":843";
- socket.addEventListener("connect", socket_connect);
- socket.addEventListener("socketData", socket_data);
- socket.addEventListener("ioError", socket_ioerror);
- socket.addEventListener("close", socket_close);
- if (CROSSDOMAINXML != null)
- {
- Security.loadPolicyFile(CROSSDOMAINXML);
- }
- try
- {
- socket.connect(host, port);
- }
- catch (e:SecurityError)
- {
- }
- nextHost();
- return;
- }// end function
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement