24 lines
585 B
C#
24 lines
585 B
C#
![]() |
namespace TanksServer.Interactivity;
|
||
|
|
||
|
internal abstract class WebsocketServerConnection(
|
||
|
ILogger logger,
|
||
|
ByteChannelWebSocket socket)
|
||
|
{
|
||
|
protected readonly ByteChannelWebSocket Socket = socket;
|
||
|
|
||
|
public Task CloseAsync()
|
||
|
{
|
||
|
logger.LogDebug("closing connection");
|
||
|
return Socket.CloseAsync();
|
||
|
}
|
||
|
|
||
|
public async Task ReceiveAsync()
|
||
|
{
|
||
|
await foreach (var buffer in Socket.ReadAllAsync())
|
||
|
HandleMessage(buffer);
|
||
|
logger.LogTrace("done receiving");
|
||
|
}
|
||
|
|
||
|
protected abstract void HandleMessage(Memory<byte> buffer);
|
||
|
}
|