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); } function readAllFromSocket(host,port,outputData,listener) { try { var transportService = Components.classes["@mozilla.org/network/socket-transport-service;1"].getService(Components.interfaces.nsISocketTransportService); var transport = transportService.createTransport(null,0,host,port,null); var stream = transport.openInputStream(0,0,0); var instream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream); instream.init(stream); var outstream = transport.openOutputStream(0,0,0); outstream.write(outputData,outputData.length); var dataListener = { data : "", onStartRequest: function(request, context){}, onStopRequest: function(request, context, status){ 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; }