On Jun 5, 2013, at 10:45 AM, Eric Covener <cove...@gmail.com> wrote:
> On Wed, Jun 5, 2013 at 10:03 AM, Graham Leggett <minf...@sharp.fm> wrote: >> On 05 Jun 2013, at 3:00 PM, Eric Covener <cove...@gmail.com> wrote: >> >>> I've been playing with this in my sandbox, it adds a "socket readable" >>> callback to event, similar to the timed callback, which allows >>> mod_proxy_wstunnel to hop on and off the thread like test/mod_dialup. >>> >>> http://people.apache.org/~covener/websocket-asynch-8.diff >> >> I was meaning to play around with a similar idea, but you beat me to it. >> >> What I had in mind was an API that passed conn_rec structures rather than >> raw sockets, which could then be processed using the same lifecycle that a >> server generated conn_rec's pass through (ap_run_process_connection()). > >> Proxy could then pass the conn_rec it uses towards the backend to the core, >> and then obtain event driven events for ready-to-read and ready-to-write >> from the frontend and the backend, independently of one another. > > conn_rec is easy for the proxies, but could limit how other mods can > take advantage of the service > Yeah, I think conn_rec would make sense if we were a single-threaded server, but considering the hybrid that we are, the real thing we're concerned about are the raw sockets. This also makes more sense with things like SPDY, iirc. I also like the "weirdness" of the API (socket grouping)... it's more robust. I really, REALLY like this! ++1