|
|
|
|
Publica un mensaje en el broker MQTT. gMqttSession is mqttSession llResult is int sTopic is string bufContent is Buffer gMqttSession.Address = "xxx.xx.xxx.xxx" // To fill gMqttSession.Port = 1883 gMqttSession.ClientID = "MyTest" gMqttSession.CleanSession = True sTopic = "/SERVER" bufContenu = "Test from WINDEV" IF NOT gMqttSession.Connect() THEN Error("Connection problem. '" + ErrorInfo() + "')") END llResult = gMqttSession.Publish(sTopic, bufContent)
gMqttSession is mqttSession ... llResult is int sTopic = "/SERVER" bufContenu = "Test from WINDEV" llResult = gMqttSession.Publish(sTopic, bufContent, True, ... mqttQualityExactlyOnce, PublicationMQTT) INTERNAL PROCEDURE PublicationMQTT(pMqttSession is mqttSession, MessageNum is int) Trace("Publication" + " - MessageNum = " + MessageNum) END
Sintaxis
<Result> = <MQTT session>.Publish(<Subject> , <Data> [, <To store> [, <Quality of service> [, <Procedure>]]])
<Result>: Integro - Número de mensajes publicados (constantes mqttQualityExactlyOnce y mqttQualityAtLeastOnce).
- 0 si la publicación tiene éxito (constante mqttQualityAtMostOnce).
- -1 si se produce un error.
<MQTT session>: mqttSession variable Nombre de la mqttSession Variable correspondiente a la sesión MQTT que se va a utilizar. <Subject>: Cadena de caracteres Tema del mensaje. <Data>: Buffer Datos a publicar (no debe exceder 256MB). <To store>: Booleano opcional - True si se debe conservar el mensaje en el servidor.
- False (predeterminado) en caso contrario.
<Quality of service>: Entero opcional Calidad de servicio solicitada:
| | mqttQualityAtLeastOnce | El mensaje se entregará al menos una vez. El cliente transmitirá el mensaje varias veces si es necesario hasta que el servidor (broker) confirme que el mensaje fue transmitido en la red. Equivalente a QOS set a 1. | mqttQualityAtMostOnce | El mensaje será entregado una vez como máximo. El mensaje no se almacena. Se envía sin garantía de recepción. El MQTTT (broker) no informa al remitente de que el mensaje ha sido recibido.. El mensaje puede perderse si el cliente se desconecta o si el servidor se detiene.. Equivalente a QOS set a 0. | mqttQualityExactlyOnce | El mensaje será necesariamente guardado por el emisor. Se transmitirá mientras el receptor no confirme su envío a la red.. El emisor está utilizando un sofisticado reconocimiento con el servidor (broker) para evitar la duplicación de mensajes.. Este modo es más lento pero es más secure. Equivalente a QOS set a 2. |
<Procedure>: Nombre del WLanguage opcional Procedure Nombre del procedimiento WLanguage ("callback") ejecutado cuando se publicó el mensaje (este procedimiento se llama si se utilizan las constantes mqttQualityExactlyOnce y mqttQualityAtLeastOnce). Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(<Session> is mqttSession, <Message num> is int) donde: - <Sesión> corresponde a una mqttSession Variable que contiene las características de la sesión MQTT.
- <El número de mensaje corresponde al número de mensaje publicado..
Clasificación Lógica de negocio / UI: Lógica de negocio
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|