public async Task InvokeAsync(
            HttpContext context,
            IWebSocketHandler webSocketHandler,
            IOptions <WebSocketOption> options)
        {
            if (context.WebSockets.IsWebSocketRequest && context.Request.Path == "/ws")
            {
                var queryString = context.Request.Query[options.Value.RequestType].ToString().AsWebSocketRequestType();

                var webSocket = await context.WebSockets.AcceptWebSocketAsync();

                await webSocketHandler.ProcessIncomingRequest(webSocket, queryString);
            }

            else
            {
                await _next(context);
            }
        }