Example #1
0
        public Task <bool> ProcessRequest(IMqttRequestContext context)
        {
            var payload = context.GetPayloadAsString();
            var message = JsonConvert.DeserializeObject <TMessage>(payload, JsonSerializerSettings);

            return(ProcessMessage(context, message));
        }
        public static string GetPayloadAsString(this IMqttRequestContext requestContext, Encoding encoding = null)
        {
            if (requestContext == null)
            {
                throw new ArgumentNullException(nameof(requestContext));
            }

            if (requestContext.Payload == null)
            {
                return(null);
            }

            if (requestContext.Payload.Length == 0)
            {
                return(string.Empty);
            }

            var useEncoding = encoding ?? Encoding.UTF8;

            return(useEncoding.GetString(requestContext.Payload, 0, requestContext.Payload.Length));
        }
Example #3
0
 protected abstract Task <bool> ProcessMessage(IMqttRequestContext context, TMessage message);
Example #4
0
 private static bool IsMatch(MqttTopicFilter topicFilter, IMqttRequestContext request)
 => MqttTopicFilterComparer.IsMatch(request.Topic, topicFilter.Topic) &&
 request.QualityOfServiceLevel == topicFilter.QualityOfServiceLevel;
 public MqttRequestContext(IMqttRequestContext context, TTopicParameters topicParameters)
     : base(context)
 {
     TopicParameters = topicParameters;
 }
 public MqttCommandContext(IMqttRequestContext context, TEntity entity, TEntityDefinition entityDefinition)
     : base(context)
 {
     Entity           = entity;
     EntityDefinition = entityDefinition;
 }