bare basic WS setup

This commit is contained in:
2026-03-20 23:59:08 -04:00
parent 4961ced384
commit 2b2b16271b
5 changed files with 36 additions and 12 deletions

View File

@@ -16,25 +16,28 @@ public partial class MainPage : ContentPage
private void SendButton_OnClicked(object? sender, EventArgs e) private void SendButton_OnClicked(object? sender, EventArgs e)
{ {
SendMessage(); SendMessage(sender, e);
} }
private void MessageEntry_OnCompleted(object? sender, EventArgs 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(); var text = MessageEntry.Text?.Trim();
if (string.IsNullOrWhiteSpace(text)) if (string.IsNullOrWhiteSpace(text))
return; return;
ChatSimulator.Send(_username, text); MauiProgram.wsc.Send($"{_username}:{text}");
// ChatSimulator.Send(_username, text);
Console.WriteLine($"[{_username}] sent message: {text}"); Console.WriteLine($"[{_username}] sent message: {text}");
MessageEntry.Text = string.Empty; MessageEntry.Text = string.Empty;
MessageEntry.Focus(); MessageEntry.Focus();
} }

View File

@@ -1,16 +1,18 @@
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Maui.Hosting; using WebSocketSharp;
namespace RelayClient; namespace RelayClient;
public static class MauiProgram public static class MauiProgram
{ {
// public static event Action<ChatMessage>? MessageSent;
public static WebSocket wsc = new WebSocket("ws://localhost:1337");
public static MauiApp CreateMauiApp() public static MauiApp CreateMauiApp()
{ {
wsc.OnMessage += (sender, e) => OnWebSocketRecieved(sender, e);
wsc.Connect();
var builder = MauiApp.CreateBuilder(); var builder = MauiApp.CreateBuilder();
builder builder.UseMauiApp<App>().ConfigureFonts(fonts =>
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{ {
fonts.AddFont("AnonymousPro-Bold.ttf", "AnonymousProBold"); fonts.AddFont("AnonymousPro-Bold.ttf", "AnonymousProBold");
fonts.AddFont("AnonymousPro-BoldItalic.ttf", "AnonymousProBoldItalic"); fonts.AddFont("AnonymousPro-BoldItalic.ttf", "AnonymousProBoldItalic");
@@ -18,10 +20,28 @@ public static class MauiProgram
fonts.AddFont("AnonymousPro-Regular.ttf", "AnonymousProRegular"); fonts.AddFont("AnonymousPro-Regular.ttf", "AnonymousProRegular");
}); });
#if DEBUG #if DEBUG
builder.Logging.AddDebug(); builder.Logging.AddDebug();
#endif #endif
return builder.Build(); 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);
}
} }

View File

@@ -42,6 +42,7 @@
<PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" /> <PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="10.0.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="10.0.0" />
<PackageReference Include="SurrealDb.Net" Version="0.9.0" /> <PackageReference Include="SurrealDb.Net" Version="0.9.0" />
<PackageReference Include="WebSocketSharp" Version="1.0.3-rc11" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -16,7 +16,7 @@ var kira = await CreateUserAsync(db, "Ru_Kira", "jduesling13@gmail.com", "passwo
Console.WriteLine($"Keeper created: {ToJsonString(keeper)}"); Console.WriteLine($"Keeper created: {ToJsonString(keeper)}");
Console.WriteLine($"Kira created: {ToJsonString(kira)}"); Console.WriteLine($"Kira created: {ToJsonString(kira)}");
Console.ReadKey(true);
return; return;
static string ToJsonString(object? o) static string ToJsonString(object? o)

View File

@@ -15,6 +15,7 @@ await using var db = await surrealService.ConnectAsync();
var wssv = new WebSocketServer("ws://localhost:1337"); var wssv = new WebSocketServer("ws://localhost:1337");
wssv.AddWebSocketService<ChatTest>("/"); wssv.AddWebSocketService<ChatTest>("/");
wssv.Start(); wssv.Start();
Console.WriteLine("WebSocket server started");
Console.ReadKey(true); Console.ReadKey(true);
wssv.Stop(); wssv.Stop();
@@ -72,8 +73,6 @@ Console.WriteLine($"Channel created: {ToJsonString(channel)}");
var channelId = GetRecordId(channel.Id); var channelId = GetRecordId(channel.Id);
Console.WriteLine($"Resolved channelId: {channelId}"); Console.WriteLine($"Resolved channelId: {channelId}");
Console.WriteLine($"Channel created: {ToJsonString(channel)}");
var keyBase64 = cryptoService.GenerateKey(); var keyBase64 = cryptoService.GenerateKey();
var serverKey = await db.Create("server_encryption_keys", new ServerEncryptionKeys var serverKey = await db.Create("server_encryption_keys", new ServerEncryptionKeys
@@ -165,7 +164,8 @@ public class ChatTest : WebSocketBehavior
{ {
protected override void OnMessage(MessageEventArgs e) 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); Console.WriteLine(msg);
Send(msg); Send(msg);
} }