Merge branch 'socketServer'
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -1,22 +1,26 @@
|
||||
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");
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -149,4 +158,15 @@ static string GetRecordId(object? id)
|
||||
var table = root.GetProperty("Table").GetString() ?? string.Empty;
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="SurrealDb.Net" Version="0.9.0" />
|
||||
<PackageReference Include="WebSocketSharp" Version="1.0.3-rc11" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user