Files
Net.Sdk.Web.Extensions/AspNetCore.Extensions/Websockets/Converters/TextWebSocketMessageConverter.cs
T
2024-08-16 11:24:48 +02:00

28 lines
914 B
C#

using System.Text;
namespace AspNetCore.Extensions.Websockets.Converters;
public sealed class TextWebSocketMessageConverter : WebSocketMessageConverter<TextContent>
{
public override TextContent ConvertTo(WebSocketConverterRequest request)
{
if (request.Type is not System.Net.WebSockets.WebSocketMessageType.Text)
{
throw new InvalidOperationException($"Cannot parse message of type {request.Type}");
}
var message = Encoding.UTF8.GetString(request.Payload!);
return new TextContent { Text = message };
}
public override WebSocketConverterResponse ConvertFrom(TextContent message)
{
return new WebSocketConverterResponse
{
Type = System.Net.WebSockets.WebSocketMessageType.Text,
EndOfMessage = true,
Payload = Encoding.UTF8.GetBytes(message.Text ?? string.Empty)
};
}
}