function getPageContent() { var listener = { finished : function(data){ //data; alert(listener.data); dump(data); } } //var room = document.getElementById("lechat"); //room.value = data+"\n"; var textentry = document.getElementById('msgbox'); var mename = document.getElementById('namebox'); readAllFromSocket("127.0.0.1",9999,textentry.value,mename.value,"1",listener); //alert(listener); } /* var mlistener = { finished : function(data){ //data; //alert(data); dump(data); } }*/ var host = '127.0.0.1'; var port = 9999; 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 outstream = transport.openOutputStream(0,0,0);//Components.interfaces.nsITransport.OPEN_BLOCKING,4096,0);//Components.interfaces.nsITransport.OPEN_UNBUFFERED); //alert(outstream); //make append name to output data...little trick...use ID number to associate so that it does not repeat to the same id... function writesock(myid,myname,outputData) { var NewOuptutData = myid + "|" + myname + "|" + outputData;// + "\r\n"; //alert(NewOuptutData); outstream.write(NewOuptutData,NewOuptutData.length); } //alert(outstream); function write_it() { var txtbx = document.getElementById('msgbox'); var nmbox = document.getElementById('namebox'); var mynum = "1"; writesock(mynum,nmbox.value,txtbx.value); readAllFromSocket(); } function readAllFromSocket(listener) { try { var stream = transport.openInputStream(0,0,0);//Components.interfaces.nsITransport.OPEN_BLOCKING,4096,0);//Components.interfaces.nsITransport.OPEN_UNBUFFERED,null,null); //alert(stream); var instream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream); //alert(instream); instream.init(stream); //alert(instream.read(-1)); //alert(instream); 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); dump(this.data); var meroom = document.getElementById("lechat"); meroom.value += this.data +"\r\n"; //alert }, }; //alert(dataListener.data); 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); //alert(dataListener.data); } catch (ex){ alert("error" + ex.result + ": " + ex.message); return ex; } return null; }