public async Task Handle(MqttClientConnectedEvent message, IMessageHandlerContext context)
        {
            _logger.Info($"ClientConnectedMessage recived. DETAILS:\n{message.ToString()}");

            var devices = await this._mqttClientManager.GetDevicesByMqttClientAsync(message.client_id);

            foreach (var device in devices)
            {
                var @event = new DeviceConnectEvent
                {
                    mqtt_client_id = device.mqtt_client_id,
                    serial_number  = device.serial_number,
                    type_text      = device.type_text
                };

                await context.Publish(@event);
            }

            //await this._mqttClientManager.ChangeDevicesStatusAsync(true, message.client_id);
        }
Exemplo n.º 2
0
        public override DeviceEvent ParseDeviceEvent(MqttApplicationMessageReceivedEventArgs eventArgs)
        {
            var payload = eventArgs.ApplicationMessage.Payload;

            if (payload == null || payload.Length == 0)
            {
                return(null);
            }

            var payloadStr = Encoding.UTF8.GetString(eventArgs.ApplicationMessage.Payload);

            if (this.IsValidJson(payloadStr))
            {
                DeviceConnectEvent message = JsonConvert.DeserializeObject <DeviceConnectEvent>(payloadStr);

                if (string.IsNullOrEmpty(message.mqtt_client_id))
                {
                    message.mqtt_client_id = eventArgs.ClientId;
                }

                return(message);
            }
            return(null);
        }
Exemplo n.º 3
0
 protected virtual void OnDeviceConnectEvent(string str)
 {
     DeviceConnectEvent?.Invoke(str);
 }
Exemplo n.º 4
0
 protected virtual void OnDeviceConnectEvent(BleGattDevice dev)
 {
     DeviceConnectEvent?.Invoke(dev);
 }
Exemplo n.º 5
0
 public virtual void OnDeviceConnectEvent(bool status)
 {
     DeviceConnectEvent?.Invoke(status);
 }