Compare commits

..

4 Commits

Author SHA1 Message Date
cc31c4024a Merge branch 'socketServer' 2026-03-21 00:00:25 -04:00
2b2b16271b bare basic WS setup 2026-03-20 23:59:08 -04:00
4961ced384 Merge remote-tracking branch 'origin/main' into socketServer 2026-03-20 22:48:50 -04:00
187c8de6d3 start of socket 2026-03-20 22:48:32 -04:00
6 changed files with 56 additions and 11 deletions

View File

@@ -16,25 +16,28 @@ 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;
ChatSimulator.Send(_username, text);
MauiProgram.wsc.Send($"{_username}:{text}");
// ChatSimulator.Send(_username, text);
Console.WriteLine($"[{_username}] sent message: {text}");
MessageEntry.Text = string.Empty;
MessageEntry.Focus();
}

View File

@@ -1,16 +1,18 @@
using Microsoft.Extensions.Logging;
using Microsoft.Maui.Hosting;
using WebSocketSharp;
namespace RelayClient;
public static class MauiProgram
{
// public static event Action<ChatMessage>? 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<App>()
.ConfigureFonts(fonts =>
builder.UseMauiApp<App>().ConfigureFonts(fonts =>
{
fonts.AddFont("AnonymousPro-Bold.ttf", "AnonymousProBold");
fonts.AddFont("AnonymousPro-BoldItalic.ttf", "AnonymousProBoldItalic");
@@ -18,10 +20,28 @@ public static class MauiProgram
fonts.AddFont("AnonymousPro-Regular.ttf", "AnonymousProRegular");
});
#if DEBUG
builder.Logging.AddDebug();
#endif
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.Extensions.Logging.Debug" Version="10.0.0" />
<PackageReference Include="SurrealDb.Net" Version="0.9.0" />
<PackageReference Include="WebSocketSharp" Version="1.0.3-rc11" />
</ItemGroup>
</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($"Kira created: {ToJsonString(kira)}");
Console.ReadKey(true);
return;
static string ToJsonString(object? o)

View File

@@ -1,4 +1,8 @@
using System.Text.Json;
using System;
using WebSocketSharp.Server;
using WebSocketSharp;
using RelayServer.Models;
using RelayServer.Services;
@@ -8,6 +12,13 @@ var cryptoService = new ChannelCryptoService();
await using var db = await surrealService.ConnectAsync();
var wssv = new WebSocketServer("ws://localhost:1337");
wssv.AddWebSocketService<ChatTest>("/");
wssv.Start();
Console.WriteLine("WebSocket server started");
Console.ReadKey(true);
wssv.Stop();
var keeper = await coreClient.GetUserByUsernameAsync("Keeper317");
var kira = await coreClient.GetUserByUsernameAsync("Ru_Kira");
@@ -62,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
@@ -150,3 +159,14 @@ static string GetRecordId(object? id)
return $"{table}:{recordId}";
}
public class ChatTest : WebSocketBehavior
{
protected override void OnMessage(MessageEventArgs e)
{
// var msg = e.Data.Split(":")[1] == "PING" ? "SERVER:PONG" : "SERVER:RESPONSE";
var msg = e.Data;
Console.WriteLine(msg);
Send(msg);
}
}

View File

@@ -9,6 +9,7 @@
<ItemGroup>
<PackageReference Include="SurrealDb.Net" Version="0.9.0" />
<PackageReference Include="WebSocketSharp" Version="1.0.3-rc11" />
</ItemGroup>
</Project>