Don't merge: Circular Dependency issue

I want the websockets example/user code to not have to explicitly call the websockets handshake function.
This means that the Http server would call it before calling the application's websocket handler.
Websockets uses the Http Request type, in order to do the Handshake.
This creates a circular dependency.

Solution Options:
1) Websockets and Http should be one thing, so they can full depend on each other
2) Websockets should not depend on Http Request: just have Http hand it the required headers.
3) Http should not depend on Websockets... some way of making the websocket constructors/handler do this automatically....

Any opinions on how to solve this?