initial project, implement binary format of display

This commit is contained in:
Vinzenz Schroeter 2024-04-06 13:46:34 +02:00
commit ea7f12b0c2

41
TanksServer/Program.cs Normal file
View file

@ -0,0 +1,41 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
namespace TanksServer;
internal static class Program
{
public static async Task Main(string[] args)
{
var app = Configure(args);
var display = app.Services.GetRequiredService<ServicePointDisplay>();
var mapDrawer = app.Services.GetRequiredService<MapDrawer>();
var buffer = mapDrawer.CreateGameFieldPixelBuffer();
mapDrawer.DrawInto(buffer);
await display.Send(buffer);
app.UseWebSockets();
app.Map("/screen", async context =>
{
if (!context.WebSockets.IsWebSocketRequest)
return;
using var ws = await context.WebSockets.AcceptWebSocketAsync();
});
await app.RunAsync();
}
private static WebApplication Configure(string[] args)
{
var builder = WebApplication.CreateSlimBuilder(args);
builder.Services.AddSingleton<ServicePointDisplay>();
builder.Services.AddSingleton<MapService>();
builder.Services.AddSingleton<MapDrawer>();
return builder.Build();
}
}