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)); }
protected abstract Task <bool> ProcessMessage(IMqttRequestContext context, TMessage message);
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; }