move more websocket logic into base classes
This commit is contained in:
parent
57c0d229f1
commit
fb675e59ff
7 changed files with 89 additions and 123 deletions
|
@ -0,0 +1,23 @@
|
|||
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);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue