es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

LWT con propiedades de usuario (marca de tiempo): desconectarse de manera abrupta.

Nuevo en MQTT

Desarrollando en .NET con la librería MqttNet para el broker EMQX:

Estoy utilizando la función ‘user properties’ de MQTTv5 para agregar una marca de tiempo a mis mensajes al publicar. Eso funciona perfectamente.

Sin embargo, también necesito marcar los mensajes LWT (última voluntad y testamento en inglés). En mi método de conexión, puedo proporcionar un LWT que incluya la marca de tiempo como propiedad del usuario.
Ahora, cuando me suscribo a mi tema LWT utilizando el cliente de escritorio MQQTX, obtengo esos mensajes y LWT; hasta aquí todo bien.

Pero cuando termino el proceso de mis programas (es decir, desconecto de forma no elegante), inmediatamente recibo un mensaje LWT. El problema es que mi propiedad del usuario ‘timestamp’ tiene la marca de tiempo desde la conexión fue establecida (y la primera vez que se estableció el LWT).

Podría dejar el valor vacío en mi método de conexión, por lo que un valor vacío significa desconexión no elegante; pero eso no es muy elegante.

¿Existe la posibilidad de interceptar los mensajes LWT enviados por el broker y establecer la marca de tiempo?

EDITAR:
Encontré el ‘motor de reglas’, que me permite usar una marca de tiempo del broker. Pero hasta ahora solo pude agregarla a la carga útil (lo ideal sería que fuera una propiedad del usuario)
EMQ rule engine test

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es posible interceptar los mensajes LWT enviados desde el broker y establecer el timestamp. Puede utilizar la función de reglas del motor de EMQX broker para lograr esto. En el motor de reglas, puede utilizar la función broker-timestamp para agregar un timestamp al payload del mensaje. Sin embargo, actualmente solo se puede agregar al payload, no como una propiedad de usuario. Esto puede no ser tan elegante como desearía, pero es posible.

Comments are closed.