[Opensim-dev] HttpServer overview & RFC

Dr Scofield DrScofield at xyzzyxyzzy.net
Thu May 29 07:52:54 UTC 2008


Dr Scofield wrote:
> Sean Dague wrote:
>   
>> On Wed, May 28, 2008 at 08:07:23AM +0200, Dr Scofield wrote:
>>   
>>     
>>>    hi all, another request for comments :-)
>>>     
>>>       
>> First, +1 on the approach here.  A couple of questions / comments in
>> line just to educate myself.
>>
>> [...]
>> [...]
>>     
>>>    == making use of HttpServer ==
>>>    what i'd actually like to implement (either as an HttpModule or as an
>>>    HttpListener handler) is an event--event handler scheme:
>>>      * incoming HTTP request is pushed as an OSHttpRequest object into an
>>>        HTTP request queue.
>>>      * each OSHttpRequest encapsulates
>>>
>>>      * the HTTP request header,
>>>      * an input stream fed by the remote client,
>>>      * an output stream feeding the remote client
>>>      * method to produce OSHttpResponse object (for signaling redirects,
>>>        setting status codes, etc)
>>>
>>>      we have a pool of OSHttpRequest pumps that take OSHttpRequest objects
>>>    and pump them via the registered event handlers to whoever registered
>>>    an interest (via multicast mechanism that stefan already explained a
>>>    couple of days ago as well)
>>>
>>>      event handlers return either
>>>      * Pass --- didn't act on it
>>>      * Handled --- acted on it, response return as out parameter
>>>      * Detach --- acting on it, taking care of it myself, don't do
>>>        anything
>>>     
>>>       
>> Can you give an example of Handled vs. Detach usage?
>>   
>>     
> Handled: simple request for an item/an action, no streaming per se 
> involved.
> Detach: HTTP connection that we keep open; for example, "long poll" 
> support: client connects, requests status update, OpenSim queues the 
> request by detaching the OSHttpRequest from OSHttpServer and placing it 
> in a queue. OSHttpServer happily continues, not sending anything back 
> nor closing the input and output streams. eventually the event the 
> client was interested in occurs, event handler goes through queue of, 
> err, queued OSHttpRequests and responds --- optionally re-queuing the 
> OSHttpRequest.
>   
another example for detach: streaming media (though can't really think 
of an OpenSim example in that context).


-- 
dr dirk husemann ---- virtual worlds research ---- ibm zurich research lab
SL: dr scofield ---- drscofield at xyzzyxyzzy.net ---- http://xyzzyxyzzy.net/
RL: hud at zurich.ibm.com - +41 44 724 8573 - http://www.zurich.ibm.com/~hud/




More information about the Opensim-dev mailing list