2015-04-08 23:56 GMT+02:00 Mark Thomas <ma...@apache.org>:

> As of r1672190 we now have the following:
>
> - ALPN support in tc-native trunk
> - The ability to register upgrade protocol implementations that will:
>   - be included in the ALPN negotiation
>   - cause processing to be passed to a protocol dedicated processor
>     implementation once ALPN negotiation completes
>
> I have tested this with h2 and it works - up until the point where
> processing passes to the HTTP/2 processor. Since that processor is only
> a dummy implementation the connection dies at that point.
>
> This is intended to be extensible. If, for example, WebSocket is added
> to the IANA registry for ALPN (I'm not sure if it will be or not) then
> it should be relatively simple to add the plumbing to Tomcat to make
> that work.
>
> I'm still thinking where about in the processing chain to insert the
> check for HTTP upgrade. It could be as early as the Adapter or as late
> as the ContextContextValve.
>
> I have been considering refactoring WebSocket to use this new HTTP
> upgrade process - whatever it becomes - but I think - on balance - it
> makes sense not to. They are fundamentally different.
> - HTTP upgrade for h2c happens irrespective of the URL being requested.
> - HTTP upgrade for WebSocket only happens if the upgrade request is for
> a valid URL.
>
> Given this, I am leaning towards the new HTTP upgrade mechanism (the one
> that will be used by h2c) being earlier rather than later in the
> processing chain.
>
> Next steps are:
> - start to flesh out the Http2Processor implementation
> - provide a 1.2.0-dev build of tc-native for Windows (assuming folks
> want one and can't built it themselves)
>
> Very nice.

As for the user API, it's a big question at the moment.

Rémy

Reply via email to