public async Task ConnectToSignalRServer()
        {
            var token = await _restClient.GetToken(
                _settings.IdentityServerbaseUrl,
                _settings.AuthorizationCredentials);

            await _signalRClient.ConnectToSignalR(token, _settings.SignalRHubUrl);

            _signalRClient.ReceiveLightPoint += async(s, e) =>
            {
                var lightPointStatus = new LightPointStatus()
                {
                    Id     = e.LightBulbId.ToString(),
                    Status = e.Status
                };

                string lightPointStatusPayload = JsonConvert.SerializeObject(lightPointStatus);

                await _mqttServer.PublishMessage("lightChange", lightPointStatusPayload);
            };

            _signalRClient.RestOfLightPoint += async(s, e) =>
            {
                await _mqttServer.PublishMessage("reset", e.LightPointId.ToString());
            };

            _signalRClient.HardRestOfLightPoint += async(s, e) =>
            {
                await _mqttServer.PublishMessage("hardReset", e.LightPointId.ToString());
            };
        }
        protected override async Task Handle(ReceiveLightPointEvent request, CancellationToken cancellationToken)
        {
            var lightPointStatus = new LightPointStatus()
            {
                Id     = request.LightBulbId.ToString(),
                Status = request.Status
            };

            string lightPointStatusPayload = JsonConvert.SerializeObject(lightPointStatus);

            await _mqttServer.PublishMessage("lightChange", lightPointStatusPayload);
        }
Пример #3
0
 private async Task SwitchLight(string payload)
 {
     LightPointStatus lightPointStatus = JsonConvert.DeserializeObject <LightPointStatus>(payload);
     await _signalRClient.InvokeSendStatusMethod(Guid.Parse(lightPointStatus.Id), lightPointStatus.Status);
 }