Added protected API for WebSocket creation #232

Exposes the WebSocket creation to subclasses so that they may inspect, override or decorate the websocket before it is instantiated.