12345678910111213141516171819202122232425262728 |
- using Microsoft.AspNetCore.Hosting.Server;
- using Microsoft.AspNetCore.Hosting.Server.Features;
- using Microsoft.AspNetCore.Http.Features;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Logging;
- namespace CompServ.Worker;
- internal class HubRegister(IServiceProvider serviceProvider, ILogger<HubRegister> logger)
- {
- private int _listeningPort;
- public async Task Register()
- {
- var svr = serviceProvider.GetRequiredService<IServer>();
- var saf = svr.Features.GetRequiredFeature<IServerAddressesFeature>();
- _listeningPort = new Uri(saf.Addresses.First()).Port;
- logger.LogInformation($"Register to hub <{StatusHolder.HubServer}> with port <{_listeningPort}> and ratio <{StatusHolder.Ratio}>");
- await new ClientLibrary.CompServHubClient(StatusHolder.HubServer!).RegisterWorker(_listeningPort, StatusHolder.Ratio);
- }
- public async Task UnRegister()
- {
- logger.LogInformation($"UnRegister to hub <{StatusHolder.HubServer}> with port <{_listeningPort}>");
- await new ClientLibrary.CompServHubClient(StatusHolder.HubServer!).UnRegisterWorker(_listeningPort);
- }
- }
|