port selection on plugin

This commit is contained in:
Michal Courson
2026-02-28 17:01:59 -05:00
parent ab57d8ef22
commit 7a471041e7
7 changed files with 100 additions and 19 deletions

View File

@ -30,20 +30,26 @@ namespace ClipTrimDotNet.Client
}
//private HttpClient httpClient;
private SocketIO socket;
private SocketIO? socket;
public int PortNumber { get; set; } = 5010;
public ClipTrimClient()
public string HostName
{
//httpClient = new HttpClient()
//{
// BaseAddress = new Uri("http://localhost:5010/"),
// Timeout = TimeSpan.FromSeconds(10)
//};
Logger.Instance.LogMessage(TracingLevel.INFO, $"Starting ClipTrimClient on port {PortNumber}");
socket = new SocketIO(new Uri($"http://localhost:5010/"));
get
{
//return $"http://localhost:5010/";
return $"http://localhost:{GlobalSettings.Instance.PortNumber}/";
}
}
private string? currentHostname = null;
void CreateSocket()
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"Starting ClipTrimClient on port {HostName}");
socket = new SocketIO(new Uri(HostName));
currentHostname = HostName;
socket.Options.AutoUpgrade = false;
//socket.Options.Path = "/socket.io";
socket.Options.ConnectionTimeout = TimeSpan.FromSeconds(10);
socket.Options.Reconnection = true;
socket.On("full_data", ctx =>
@ -85,6 +91,11 @@ namespace ClipTrimDotNet.Client
return Task.CompletedTask;
});
socket.OnConnected += (sender, e) =>
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"Socket connected: {e}");
};
socket.OnDisconnected += (sender, e) =>
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"Socket disconnected: {e}");
@ -93,8 +104,19 @@ namespace ClipTrimDotNet.Client
Task.Run(async () => await Connect());
}
public ClipTrimClient()
{
//httpClient = new HttpClient()
//{
// BaseAddress = new Uri("http://localhost:5010/"),
// Timeout = TimeSpan.FromSeconds(10)
//};
CreateSocket();
}
public async Task Connect()
{
if (socket is null) return;
while (!socket.Connected)
{
try
@ -180,6 +202,12 @@ namespace ClipTrimDotNet.Client
return Collections.Where(x => x.Name != "Uncategorized").Select(x => x.Name).ToList();
}
public string GetCurrentCollectionName()
{
if (SelectedCollection == -1) return "";
return Collections[SelectedCollection].Name;
}
public string GetPlayerStringByCoordinateIndex(int index)
{
if (PageMode)
@ -225,9 +253,10 @@ namespace ClipTrimDotNet.Client
}
else
{
if (socket is null) return;
var metadata = GetClipByPagedIndex(index);
if (metadata == null) return;
Logger.Instance.LogMessage(TracingLevel.INFO, $"playing clip:");
//Logger.Instance.LogMessage(TracingLevel.INFO, $"playing clip:");
await socket.EmitAsync("play_clip", new List<object>() { metadata });
}
@ -235,7 +264,24 @@ namespace ClipTrimDotNet.Client
public async void SaveClip()
{
if (socket is null) return;
await socket.EmitAsync("record_clip", new List<object>() { });
}
public async void CheckPort()
{
if (socket is null) return;
//Logger.Instance.LogMessage(TracingLevel.INFO, $"Checking port {socket}");
if (currentHostname != HostName)
{
//Logger.Instance.LogMessage(TracingLevel.INFO, $"port {socket}");
if (socket.Connected)
{
await socket.DisconnectAsync();
}
socket.Dispose();
CreateSocket();
}
}
}
}