public Task Start()

in src/Azure.AppService.Tunnel/Tunnel/WebSockets/WebSocketConnection.cs [47:72]


    public Task Start()
    {
        return Task.Run(async () =>
        {
            _logger.Info("Begin processing messages");

            _asyncWritesProcessor.BeginProcessing();

            var receiveBuffer = new byte[16384];

            try
            {
                while (_lifetime.IsAlive)
                {
                    var message = await ReceiveMessage(receiveBuffer);
                    var shouldContinueProcessing = await ProcessMessage(message);
                    if (!shouldContinueProcessing) break;
                }
            }
            catch (Exception ex) when (ex is not OperationCanceledException && ex is not ObjectDisposedException)
            {
                _logger.Error(ex);
                throw;
            }
        }, _lifetime);
    }