Files
ChessServer/tests/Aiursoft.ChessServer.Tests/WebSocketTester.cs
T
2023-12-10 17:01:08 +00:00

29 lines
960 B
C#

using System.Net.WebSockets;
using System.Text;
namespace Aiursoft.ChessServer.Tests;
public class WebSocketTester
{
public string LastMessage { get; private set; } = string.Empty;
public async Task Monitor(WebSocket socket)
{
var buffer = new ArraySegment<byte>(new byte[2048]);
while (true)
{
var result = await socket.ReceiveAsync(buffer, CancellationToken.None);
switch (result.MessageType)
{
case WebSocketMessageType.Close:
await socket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None);
return;
case WebSocketMessageType.Text:
LastMessage = Encoding.UTF8.GetString(buffer.Array!, 0, result.Count);
break;
default:
throw new ArgumentOutOfRangeException();
}
}
}
}