Details of the upgrade request that opened a connection, handed to
WebSocketHandlers.onOpen.
Because WebSocket routes match on exact path, variable data travels in the
query string and is exposed through WebSocketConnectionContext.query.
readonly
headers: Headers
The upgrade request headers — read these to authenticate the peer.
The authenticated principal, when one authenticated the upgrade. Populated
by threading ctx.request.user through
IWebSocketService.routeUpgrade; omitted when the upgrade was
not authenticated. Read this in onOpen to identify the peer rather than
re-deriving it from the headers.