ThinkingHome.DeviceModel.Remoting.ProxyServer
ThinkingHome.DeviceModel.Remoting.ProxyServer
RemoteHostRegistry Class
Реестр удалённых хостов на прокси: держит карты hostId → RemoteHost и connectionId → hostId, обновляет их на connect/disconnect (политика last-wins) и роутит входящие Report'ы в нужный хост. RemoteHost для hostId не удаляется при разрыве — просто уходит в offline, чтобы подписки бриджа жили.
public sealed class RemoteHostRegistry : ThinkingHome.DeviceModel.Remoting.ProxyServer.IRemoteHostRegistryInheritance System.Object → RemoteHostRegistry
Implements IRemoteHostRegistry
Constructors
RemoteHostRegistry(IHubContext<DeviceHub>) Constructor
Реестр удалённых хостов на прокси: держит карты hostId → RemoteHost и connectionId → hostId, обновляет их на connect/disconnect (политика last-wins) и роутит входящие Report'ы в нужный хост. RemoteHost для hostId не удаляется при разрыве — просто уходит в offline, чтобы подписки бриджа жили.
public RemoteHostRegistry(Microsoft.AspNetCore.SignalR.IHubContext<ThinkingHome.DeviceModel.Remoting.ProxyServer.DeviceHub> hub);Parameters
hub Microsoft.AspNetCore.SignalR.IHubContext<DeviceHub>
Properties
RemoteHostRegistry.ConnectedHosts Property
Идентификаторы подключённых сейчас хостов.
public System.Collections.Generic.IReadOnlyCollection<string> ConnectedHosts { get; }Implements ConnectedHosts
Property Value
System.Collections.Generic.IReadOnlyCollection<System.String>
Methods
RemoteHostRegistry.GenerateLinkingOtpAsync(string, CancellationToken) Method
Попросить хост сгенерировать и доставить пользователю OTP привязки.
public System.Threading.Tasks.Task GenerateLinkingOtpAsync(string hostId, System.Threading.CancellationToken ct=default(System.Threading.CancellationToken));Parameters
hostId System.String
ct System.Threading.CancellationToken
Returns
RemoteHostRegistry.TryGet(string, IDeviceHost) Method
Вернуть удалённый хост по hostId, если он сейчас подключён.
public bool TryGet(string hostId, out ThinkingHome.DeviceModel.IDeviceHost? host);Parameters
hostId System.String
host IDeviceHost
Implements TryGet(string, IDeviceHost)
Returns
RemoteHostRegistry.ValidateLinkingOtpAsync(string, string, CancellationToken) Method
Проверить OTP привязки на хосте.
public System.Threading.Tasks.Task<bool> ValidateLinkingOtpAsync(string hostId, string otp, System.Threading.CancellationToken ct=default(System.Threading.CancellationToken));Parameters
hostId System.String
otp System.String
ct System.Threading.CancellationToken
Returns
System.Threading.Tasks.Task<System.Boolean>
Events
RemoteHostRegistry.HostConnected Event
Хост подключился или переподключился (аргумент — hostId).
public event Action<string>? HostConnected;Implements HostConnected
Event Type
RemoteHostRegistry.HostDisconnected Event
Хост потерял соединение (аргумент — hostId).
public event Action<string>? HostDisconnected;Implements HostDisconnected