Changeset 23

Show
Ignore:
Timestamp:
02/25/06 13:50:29 (3 years ago)
Author:
tueda2
Message:

test client

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • test_projects/Kevin's OverhaulHeaders/overhaulheaders/content/overlay.js

    r15 r23  
    1 function myDump(theMessage){ 
    2         var consoleService = Components.classes["@mozilla.org/consoleservice;1"] 
    3                 .getService(Components.interfaces.nsIConsoleService); 
    4         consoleService.logStringMessage("Overhaul: " + theMessage); 
    5 } 
    6  
    7 function HeaderVisitor(theSubject){ 
    8         this.subject = theSubject; 
    9         this.hosts = 'None'; 
    10         this.serverType = 'Unknown'; 
    11 } 
    12  
    13 HeaderVisitor.prototype = { 
    14         subject : null, 
    15         hosts : null, 
    16         serverType : null, 
    17          
    18         visitHeader : function(name, value){ 
    19                 myDump("Visiting " + name); 
    20                 if(name == 'Overhaul-hosts'){ 
    21                         this.hosts = value; 
    22                 } 
    23                  
    24                 if(name == 'Server'){ 
    25                         this.serverType = value; 
    26                 } 
    27         } 
    28 } 
    29          
    301var myObserver = { 
    312        observe: function(subject,topic,data){ 
    32                 if(topic == 'http-on-modify-request'){ 
    33                         subject.QueryInterface(Components.interfaces.nsIHttpChannel); 
    34                         subject.setRequestHeader("Supports", "Overhaul 50 5000", false); 
    35                 } 
    36                 else if(topic == 'http-on-examine-response'){ 
    37                         myDump("Hi"); 
    38                         subject.QueryInterface(Components.interfaces.nsIHttpChannel); 
    39                         var visitor = new HeaderVisitor(subject); 
    40                         subject.visitResponseHeaders(visitor); 
    41                         myDump('Overhaul clients: ' + visitor.hosts); 
    42                         myDump('Server: ' + visitor.serverType); 
    43                 } 
     3                subject = subject.QueryInterface(Components.interfaces.nsIHttpChannel); 
     4                subject.setRequestHeader("Supports", "Overhaul 50 5000", false); 
    445        } 
    456} 
     
    478var observerService = Components.classes["@mozilla.org/observer-service;1"] 
    489        .getService(Components.interfaces.nsIObserverService); 
     10         
     11        observerService.addObserver(myObserver,"http-on-modify-request",false); 
     12        var host="128.174.253.25"; 
     13        //var host="localhost"; 
     14        var port="7055"; 
    4915 
    50 observerService.addObserver(myObserver,"http-on-modify-request",false); 
    51 observerService.addObserver(myObserver,"http-on-examine-response",false); 
    52 myDump("Overhaul is loaded"); 
    53  
    54 var serverSocket = Components.classes["@mozilla.org/network/server-socket;1"] 
    55                      .createInstance(Components.interfaces.nsIServerSocket); 
    56 var listener =  
    57 
    58         onSocketAccepted : function(serverSocket, transport)    { 
    59                 alert("Accepted socket " + serverSocket); 
    60         } 
    61 
    62                       
    63 serverSocket.init(7055,false,-1); 
    64 serverSocket.asyncListen(listener) 
     16        var transportService =Components.classes["@mozilla.org/network/socket-transport-service;1"] 
     17                                .getService(Components.interfaces.nsISocketTransportService); 
     18        var cliantSocket = transportService.createTransport(null,0,host,port,null); 
     19        var outstream = cliantSocket.openOutputStream(0,0,0); 
     20        var sendingMessage="GET /file.html CHUNK <#> HTTP\1.0\n\n"; 
     21    outstream.write(sendingMessage,sendingMessage.length); 
     22         
     23    var sendingSecondMessage="HOST localhost\n\n"; 
     24    outstream.write(sendingSecondMessage,sendingSecondMessage.length); 
     25         
     26        var sendingPortMessage="Overhaul-port: <7055>\n\n"; 
     27    outstream.write(sendingPortMessage,sendingPortMessage.length); 
     28         
     29        var sendingHostsPortMessage="Overhaul-hosts: <localhost:7055>\n\n"; 
     30    outstream.write(sendingHostsPortMessage,sendingHostsPortMessage.length); 
     31         
     32        var sendingChunkMessage="Overhaul-hosts: <CHUNKDATA>\n\n"; 
     33    outstream.write(sendingChunkMessage,sendingChunkMessage.length); 
     34         
     35        var listener = { 
     36        finished : function(data){ 
     37                dump(data); 
     38                } 
     39        }    
     40    var stream = cliantSocket.openInputStream(0,0,0); 
     41    var instream = Components.classes["@mozilla.org/scriptableinputstream;1"] 
     42      .createInstance(Components.interfaces.nsIScriptableInputStream); 
     43    instream.init(stream); 
     44    var dataListener = { 
     45                data : "",   
     46                onStartRequest: function(request, context){}, 
     47        onStopRequest: function(request, context, status){ 
     48        instream.close(); 
     49        listener.finished(this.data); 
     50                alert(this.data); 
     51                outstream.write(this.data,this.data.length); 
     52                outstream.close(); 
     53      }, 
     54        onDataAvailable: function(request, context, inputStream, offset, count){ 
     55        this.data += instream.read(count); 
     56      } 
     57    }; 
     58         
     59         
     60    var pump = Components.classes["@mozilla.org/network/input-stream-pump;1"]. 
     61        createInstance(Components.interfaces.nsIInputStreamPump); 
     62    pump.init(stream, -1, -1, 0, 0, true); 
     63    pump.asyncRead(dataListener,null); 
     64