home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 4490 / 4490.xpi / components / scripts / lib-socket.js < prev    next >
Encoding:
Text File  |  2010-01-21  |  1.8 KB  |  43 lines

  1. function SocketReader(callback,host,port,ssl) {
  2.   this.callback=callback;
  3.   var transportService =
  4.     Components.classes["@mozilla.org/network/socket-transport-service;1"]
  5.       .getService(Components.interfaces.nsISocketTransportService);
  6. /*   //      
  7.   var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
  8.   var uri = ios.newURI("https://"+host+":"+port, null, null);
  9.   var pps = Components.classes["@mozilla.org/network/protocol-proxy-service;1"].getService();
  10.   var pi=pps.resolve(uri,0);
  11.  if(pi!=null&&pi.type.indexOf("sock")==-1)pi=null;
  12. dout(pi);
  13. dout(pi.type);*/
  14.   //
  15.   this.transport = transportService.createTransport(ssl?["ssl"]:null,ssl?1:0,host,port,null);
  16.   this.outstream = this.transport.openOutputStream(0,0,0);
  17.   var stream = this.transport.openInputStream(0,0,0);
  18.   this.instream = Components.classes["@mozilla.org/scriptableinputstream;1"]
  19.     .createInstance(Components.interfaces.nsIScriptableInputStream);
  20.   this.instream.init(stream);
  21.   var pump = Components.
  22.     classes["@mozilla.org/network/input-stream-pump;1"].
  23.       createInstance(Components.interfaces.nsIInputStreamPump);
  24.   pump.init(stream, -1, -1, 0, 0, false);
  25.   pump.asyncRead(this,null);
  26. }
  27. SocketReader.prototype.write = function (data) {
  28.   this.outstream.write(data,data.length);
  29. }
  30. SocketReader.prototype.onStartRequest = function (aRequest, aContext) {
  31. }
  32. SocketReader.prototype.onDataAvailable = function (aRequest, aContext, aStream, aSourceOffset, aLength){
  33.   if(this.callback)this.callback.processSocket(this.instream.read(aLength),1);
  34. }
  35.  
  36. SocketReader.prototype.onStopRequest = function (aRequest, aContext, aStatus) {
  37.   this.close();
  38. }
  39. SocketReader.prototype.close = function () {
  40.   this.instream.close();
  41.   this.transport.close(Components.results.NS_BINDING_ABORTED);
  42. }
  43.