This commit is contained in:
Myx
2025-03-19 01:16:12 +01:00
commit 83a80b4b0f
28 changed files with 893 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
using System;
using System.Net;
using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;
namespace BeetleWire_UI.Services;
public class ConnectionManager
{
private static ConnectionManager _instance;
public static ConnectionManager Instance => _instance ??= new ConnectionManager();
public HttpListener ServerListener { get; private set; }
public ClientWebSocket ClientSocket { get; private set; }
private ConnectionManager() { }
public void StartServer(string prefix)
{
if (ServerListener == null)
{
ServerListener = new HttpListener();
ServerListener.Prefixes.Add(prefix);
ServerListener.Start();
}
}
public void StopServer()
{
ServerListener?.Stop();
ServerListener = null;
}
public async Task ConnectClientAsync(Uri uri, CancellationToken token)
{
if (ClientSocket == null)
{
ClientSocket = new ClientWebSocket();
await ClientSocket.ConnectAsync(uri, token);
}
}
public void DisconnectClient()
{
ClientSocket?.Dispose();
ClientSocket = null;
}
}