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()}");
}
}