Support WebSocket Connections from Browser

The browser websocket API does not support adding headers on connection, so an alternate scheme is required to pass the agent ID and csrf token