Ejemplo n.º 1
0
        private async Task <Task> AcceptWebsocketConnectionAsync(HttpContext context)
        {
            Task connectionTask;
            await _semaphore.WaitAsync().ConfigureAwait(false);

            try
            {
                Log.Trace("Accepting websocket connection");
                var webSocket = await context.WebSockets.AcceptWebSocketAsync().ConfigureAwait(false);

                connectionTask = await _handler.AcceptConnectionAsync(webSocket).ConfigureAwait(false);

                Log.Trace("Websocket connection accepted");
            }
            finally
            {
                _semaphore.Release();
            }
            return(connectionTask);
        }