private async Task ProcessMessage()

in src/Azure.AppService.Tunnel/Tunnel/WebSockets/WebSocketConnection.cs [87:109]


    private async Task<bool> ProcessMessage(IIncomingMessage message)
    {
        switch (message)
        {
            case CloseIncomingMessage:
            {
                _logger.Info("Close message received");
                await Close(WebSocketCloseStatus.NormalClosure, string.Empty);
                return false;
            }
            case BinaryIncomingMessage binary:
            {
                _onBinaryMessage.Fire(binary.Bytes);
                return true;
            }
            case TextIncomingMessage text:
            {
                _onTextMessage.Fire(text.Text);
                return true;
            }
            default: throw new InvalidOperationException($"Unknown message type: {message.GetType()}");
        }
    }