Files
Relay/RelayServer/Program.cs
2026-04-02 17:16:05 -04:00

38 lines
1.1 KiB
C#

using RelayServer.Endpoints;
using RelayServer.Services.Chat;
using RelayServer.Services.Core;
using RelayServer.Services.Data;
using WebSocketSharp.Server;
var surrealService = new SurrealService();
var coreClient = new CoreClientService();
var cryptoService = new ChannelCryptoService();
await using var db = await surrealService.ConnectAsync();
ChatSocketBehavior.ClientKeyService = new ClientKeyService(db);
ChatSocketBehavior.Db = db;
ChatSocketBehavior.ChannelCryptoService = cryptoService;
var bootstrapService = new ServerBootstrapService(db, coreClient, cryptoService);
await bootstrapService.InitializeAsync();
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Server Running!");
app.MapRtcEndpoints();
var wssv = new WebSocketServer("ws://localhost:1337");
wssv.AddWebSocketService<ChatSocketBehavior>("/");
wssv.Start();
Console.WriteLine("WebSocket server started");
await app.StartAsync();
Console.WriteLine("HTTP API started");
Console.ReadKey(true); // TODO: Make program stop be a console command
wssv.Stop();
await app.StopAsync();
return;