Selector/Selector.SignalR/BaseSignalRClient.cs

41 lines
926 B
C#
Raw Normal View History

2023-01-22 10:28:52 +00:00
using System;
using Microsoft.AspNetCore.SignalR.Client;
namespace Selector.SignalR;
public abstract class BaseSignalRClient: IAsyncDisposable
{
private readonly string _baseUrl;
protected HubConnection hubConnection;
public BaseSignalRClient(string path)
{
var baseOverride = Environment.GetEnvironmentVariable("SELECTOR_BASE_URL");
if (!string.IsNullOrWhiteSpace(baseOverride))
{
_baseUrl = baseOverride;
}
else
{
_baseUrl = "https://selector.sarsoo.xyz";
}
hubConnection = new HubConnectionBuilder()
.WithUrl(_baseUrl + "/" + path)
.WithAutomaticReconnect()
.Build();
}
public ValueTask DisposeAsync()
{
return ((IAsyncDisposable)hubConnection).DisposeAsync();
}
public async Task StartAsync()
{
await hubConnection.StartAsync();
}
}