ThinkingHome.DeviceModel.Remoting.ProxyServer
ThinkingHome.DeviceModel.Remoting.ProxyServer
DeviceHub Class
SignalR-хаб на прокси. Домашние коннекторы подключаются сюда с JWT (aud=connector, hostId в claim). На connect/disconnect обновляет реестр; принимает Report'ы (дом → прокси). Команды идут в обратную сторону (server → client) из RemoteHost.
public sealed class DeviceHub : Microsoft.AspNetCore.SignalR.HubInheritance System.Object → Microsoft.AspNetCore.SignalR.Hub → DeviceHub
Constructors
DeviceHub(RemoteHostRegistry) Constructor
SignalR-хаб на прокси. Домашние коннекторы подключаются сюда с JWT (aud=connector, hostId в claim). На connect/disconnect обновляет реестр; принимает Report'ы (дом → прокси). Команды идут в обратную сторону (server → client) из RemoteHost.
public DeviceHub(ThinkingHome.DeviceModel.Remoting.ProxyServer.RemoteHostRegistry registry);Parameters
registry RemoteHostRegistry
Fields
DeviceHub.Path Field
Канонический путь хаба — единый источник и для маппинга, и для извлечения токена из query.
public const string Path = "/hub";Field Value
Methods
DeviceHub.OnConnectedAsync() Method
Регистрирует соединение хоста в реестре (hostId — из валидированного JWT); без hostId соединение отклоняется.
public override System.Threading.Tasks.Task OnConnectedAsync();Returns
DeviceHub.OnDisconnectedAsync(Exception) Method
Снимает своё соединение хоста в реестре (уже переподключившееся не затирается).
public override System.Threading.Tasks.Task OnDisconnectedAsync(System.Exception? exception);Parameters
exception System.Exception
Returns
DeviceHub.Report(StateChange) Method
Отчёт об изменении состояния (дом → прокси).
public void Report(ThinkingHome.DeviceModel.State.StateChange change);Parameters
change StateChange