Skip to content

ThinkingHome.DeviceModel.Remoting.ProxyServer

ThinkingHome.DeviceModel.Remoting.ProxyServer

RemoteHostRegistry Class

Реестр удалённых хостов на прокси: держит карты hostId → RemoteHost и connectionId → hostId, обновляет их на connect/disconnect (политика last-wins) и роутит входящие Report'ы в нужный хост. RemoteHost для hostId не удаляется при разрыве — просто уходит в offline, чтобы подписки бриджа жили.

csharp
public sealed class RemoteHostRegistry : ThinkingHome.DeviceModel.Remoting.ProxyServer.IRemoteHostRegistry

Inheritance System.Object → RemoteHostRegistry

Implements IRemoteHostRegistry

Constructors

RemoteHostRegistry(IHubContext<DeviceHub>) Constructor

Реестр удалённых хостов на прокси: держит карты hostId → RemoteHost и connectionId → hostId, обновляет их на connect/disconnect (политика last-wins) и роутит входящие Report'ы в нужный хост. RemoteHost для hostId не удаляется при разрыве — просто уходит в offline, чтобы подписки бриджа жили.

csharp
public RemoteHostRegistry(Microsoft.AspNetCore.SignalR.IHubContext<ThinkingHome.DeviceModel.Remoting.ProxyServer.DeviceHub> hub);

Parameters

hub Microsoft.AspNetCore.SignalR.IHubContext<DeviceHub>

Properties

RemoteHostRegistry.ConnectedHosts Property

Идентификаторы подключённых сейчас хостов.

csharp
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 привязки.

csharp
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

System.Threading.Tasks.Task

RemoteHostRegistry.TryGet(string, IDeviceHost) Method

Вернуть удалённый хост по hostId, если он сейчас подключён.

csharp
public bool TryGet(string hostId, out ThinkingHome.DeviceModel.IDeviceHost? host);

Parameters

hostId System.String

host IDeviceHost

Implements TryGet(string, IDeviceHost)

Returns

System.Boolean

RemoteHostRegistry.ValidateLinkingOtpAsync(string, string, CancellationToken) Method

Проверить OTP привязки на хосте.

csharp
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).

csharp
public event Action<string>? HostConnected;

Implements HostConnected

Event Type

System.Action<System.String>

RemoteHostRegistry.HostDisconnected Event

Хост потерял соединение (аргумент — hostId).

csharp
public event Action<string>? HostDisconnected;

Implements HostDisconnected

Event Type

System.Action<System.String>

Опубликовано под лицензией MIT