[AIX, Linux, Windows]

Acoplamiento dinámico entre clientes MQTT y aplicaciones de IBM MQ

El flujo de publicaciones entre los clientes MQTT y las aplicaciones IBM® MQ se acopla de forma dinámica. Las publicaciones pueden originarse en un cliente MQTT o en una aplicación de IBM MQ y sin ningún orden establecido. Los publicadores y los suscriptores son de acoplamiento dinámico. Interactúan unos con otros de forma indirecta a través de publicaciones y suscripciones. También puede enviar mensajes directamente a un cliente MQTT desde una aplicación de IBM MQ.

Los clientes MQTT y las aplicaciones de IBM MQ se pueden acoplar dinámicamente en dos sentidos:
  1. Los publicadores y suscriptores tienen un acoplamiento dinámico por la asociación de una publicación y una suscripción con un tema. Los publicadores y suscriptores normalmente no tienen en cuenta ni la dirección ni la identidad del otro origen de una publicación o suscripción.
  2. Los clientes de MQTT publican, suscriben, reciben publicaciones y procesan confirmaciones de entrega en hebras separadas.

Una aplicación cliente de MQTT no espera hasta que se haya entregado una publicación. La aplicación pasa un mensaje al cliente MQTT y, a continuación, la aplicación continúa en su propia hebra. Una señal de entrega se utiliza para sincronizar la aplicación con la entrega de una publicación; consulte Señales de entrega.

Después de pasar un mensaje al cliente MQTT , la aplicación tiene la opción de esperar en la señal de entrega. En lugar de esperar, el cliente puede proporcionar un método de devolución de llamada que se invoca cuando la publicación se entrega a IBM MQ. También Puede ignorar la señal de entrega.

En función de la calidad de servicio asociada al mensaje, se devuelve la señal de entrega de forma inmediata al método de devolución de llamada, o puede hacerse una vez transcurrido cierto tiempo. La señal de entrega puede devolverse incluso después de que el cliente se desconecte y vuelva a conectarse. Si la calidad de servicio es enviar y olvidar, la señal de entrega se devuelve inmediatamente. En los otros dos casos, la señal de entrega sólo se devuelve cuando el cliente recibe el acuse de recibo indicando que la publicación se ha enviado a los suscriptores.

Las publicaciones enviadas a un cliente MQTT como resultado de una suscripción de cliente se entregan al método de devolución de llamada messageArrived . messageArrived se ejecuta en una hebra diferente a la de la aplicación principal.

Envío de mensajes directamente a un cliente MQTT

Puede enviar un mensaje a un cliente MQTT determinado de una de dos maneras.
  1. Una aplicación de IBM MQ puede enviar un mensaje directamente a un cliente MQTT sin una suscripción; consulte Envío de un mensaje a un cliente directamente.
  2. Un enfoque alternativo es utilizar el convenio de denominación ClientIdentifier. Haga que todos los suscriptores de MQTT creen suscripciones utilizando su ClientIdentifier exclusivo como tema. Publique en Identificador_cliente. La publicación se envía al cliente que esté suscrito al tema Identificador_cliente. Utilizando esta técnica puede enviar una publicación a un suscriptor de MQTT determinado.