function getPageContent() { var listener = { finished : function(data){ //data; //alert(data); dump(data); } } var room = document.getElementById("lechat"); //room.value = data+"\n"; readAllFromSocket("127.0.0.1",9999,"Who is hey!",listener); alert(listener); } /* var mlistener = { finished : function(data){ //data; //alert(data); dump(data); } }*/ function readAllFromSocket(host,port,outputData,listener) { try { var transportService = Components.classes["@mozilla.org/network/socket-transport-service;1"].getService(Components.interfaces.nsISocketTransportService); alert(transportService); var transport = transportService.createTransport(null,0,host,port,null); alert(transport); var stream = transport.openInputStream(OPEN_UNBUFFERED); alert(stream); var instream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream); alert(instream); instream.init(stream); alert(instram); var outstream = transport.openOutputStream(OPEN_UNBUFFERED); alert(outstream); outstream.write(outputData,outputData.length); alert(outstream); var dataListener = { data : "", onStartRequest: function(request, context){}, onStopRequest: function(request, context, status){ alert("error" + e.result + ": " + e.message); instream.close(); outstream.close(); listener.finished(this.data); }, onDataAvailable: function(request, context, inputStream, offset, count){ this.data += instream.read(count); }, }; var pump = Components.classes["@mozilla.org/network/input-stream-pump;1"].createInstance(Components.interfaces.nsIInputStreamPump); pump.init(stream, -1, -1, 0, 0, false); pump.asyncRead(dataListener,null); } catch (ex){ return ex; } return null; }