From 2b2b16271b5ac68a0a1756dc133f4dd427b9fdc9 Mon Sep 17 00:00:00 2001 From: Cody Larkin Date: Fri, 20 Mar 2026 23:59:08 -0400 Subject: [PATCH] bare basic WS setup --- RelayClient/MainPage.xaml.cs | 11 +++++++---- RelayClient/MauiProgram.cs | 28 ++++++++++++++++++++++++---- RelayClient/RelayClient.csproj | 1 + RelayCore/Program.cs | 2 +- RelayServer/Program.cs | 6 +++--- 5 files changed, 36 insertions(+), 12 deletions(-) diff --git a/RelayClient/MainPage.xaml.cs b/RelayClient/MainPage.xaml.cs index 659007e..88921cc 100644 --- a/RelayClient/MainPage.xaml.cs +++ b/RelayClient/MainPage.xaml.cs @@ -16,24 +16,27 @@ public partial class MainPage : ContentPage private void SendButton_OnClicked(object? sender, EventArgs e) { - SendMessage(); + SendMessage(sender, e); } private void MessageEntry_OnCompleted(object? sender, EventArgs e) { - SendMessage(); + SendMessage(sender, e); } - private void SendMessage() + private void SendMessage(object? sender, EventArgs e) { var text = MessageEntry.Text?.Trim(); if (string.IsNullOrWhiteSpace(text)) return; + + MauiProgram.wsc.Send($"{_username}:{text}"); - ChatSimulator.Send(_username, text); + // ChatSimulator.Send(_username, text); Console.WriteLine($"[{_username}] sent message: {text}"); + MessageEntry.Text = string.Empty; MessageEntry.Focus(); diff --git a/RelayClient/MauiProgram.cs b/RelayClient/MauiProgram.cs index 6eec3bd..f78c2f6 100644 --- a/RelayClient/MauiProgram.cs +++ b/RelayClient/MauiProgram.cs @@ -1,22 +1,26 @@ using Microsoft.Extensions.Logging; -using Microsoft.Maui.Hosting; +using WebSocketSharp; namespace RelayClient; public static class MauiProgram { + // public static event Action? MessageSent; + public static WebSocket wsc = new WebSocket("ws://localhost:1337"); public static MauiApp CreateMauiApp() { + wsc.OnMessage += (sender, e) => OnWebSocketRecieved(sender, e); + wsc.Connect(); var builder = MauiApp.CreateBuilder(); - builder - .UseMauiApp() - .ConfigureFonts(fonts => + builder.UseMauiApp().ConfigureFonts(fonts => { fonts.AddFont("AnonymousPro-Bold.ttf", "AnonymousProBold"); fonts.AddFont("AnonymousPro-BoldItalic.ttf", "AnonymousProBoldItalic"); fonts.AddFont("AnonymousPro-Italic.ttf", "AnonymousProItalic"); fonts.AddFont("AnonymousPro-Regular.ttf", "AnonymousProRegular"); }); + + #if DEBUG builder.Logging.AddDebug(); @@ -24,4 +28,20 @@ public static class MauiProgram return builder.Build(); } + + public static void OnWebSocketRecieved(object? sender, MessageEventArgs e) + { + Console.WriteLine(sender.ToString()); + + ChatSimulator.Send(e.Data.Split(":")[0], e.Data.Split(":")[1]); + + // var message = new ChatMessage + // { + // SenderUsername = e.Data.Split(":")[0], + // Text = e.Data.Split(":")[1], + // Timestamp = DateTime.Now + // }; + // + // MessageSent?.Invoke(message); + } } \ No newline at end of file diff --git a/RelayClient/RelayClient.csproj b/RelayClient/RelayClient.csproj index 39a8d37..5d0f8bc 100644 --- a/RelayClient/RelayClient.csproj +++ b/RelayClient/RelayClient.csproj @@ -42,6 +42,7 @@ + diff --git a/RelayCore/Program.cs b/RelayCore/Program.cs index 7075ac5..c3fbd64 100644 --- a/RelayCore/Program.cs +++ b/RelayCore/Program.cs @@ -16,7 +16,7 @@ var kira = await CreateUserAsync(db, "Ru_Kira", "jduesling13@gmail.com", "passwo Console.WriteLine($"Keeper created: {ToJsonString(keeper)}"); Console.WriteLine($"Kira created: {ToJsonString(kira)}"); - +Console.ReadKey(true); return; static string ToJsonString(object? o) diff --git a/RelayServer/Program.cs b/RelayServer/Program.cs index f33e1b1..ad36140 100644 --- a/RelayServer/Program.cs +++ b/RelayServer/Program.cs @@ -15,6 +15,7 @@ await using var db = await surrealService.ConnectAsync(); var wssv = new WebSocketServer("ws://localhost:1337"); wssv.AddWebSocketService("/"); wssv.Start(); +Console.WriteLine("WebSocket server started"); Console.ReadKey(true); wssv.Stop(); @@ -72,8 +73,6 @@ Console.WriteLine($"Channel created: {ToJsonString(channel)}"); var channelId = GetRecordId(channel.Id); Console.WriteLine($"Resolved channelId: {channelId}"); -Console.WriteLine($"Channel created: {ToJsonString(channel)}"); - var keyBase64 = cryptoService.GenerateKey(); var serverKey = await db.Create("server_encryption_keys", new ServerEncryptionKeys @@ -165,7 +164,8 @@ public class ChatTest : WebSocketBehavior { protected override void OnMessage(MessageEventArgs e) { - var msg = e.Data == "PING" ? "PONG" : "SERVER"; + // var msg = e.Data.Split(":")[1] == "PING" ? "SERVER:PONG" : "SERVER:RESPONSE"; + var msg = e.Data; Console.WriteLine(msg); Send(msg); }