-
-
Notifications
You must be signed in to change notification settings - Fork 33
Publish via output
Kees Schollaart edited this page Apr 16, 2018
·
7 revisions
- Add the
MqttAttribute
to one of your functions parameters - Use one of the constructor overloads to configure
- The first/simple constructor which does not require any parameter
- The second (more advanced) constructor requires a Type which you then have to implement more on this
- Make sure the type of the parameter is
IMqttMessage
and marked asout
This is an example of an Azure Function running based on a timer trigger publishing messages to a MQTT topic:
[FunctionName("SimpleFunction")]
public static void SimpleFunction(
[TimerTrigger("0 */5 * * * *")]TimerInfo timer,
[Mqtt] out IMqttMessage outMessage)
{
outMessage = new MqttMessage("testtopic/out", new byte[] { }, MqttQualityOfServiceLevel.AtLeastOnce, true);
}
It is also possible to output multiple messages in a single functions run using the ICollector output:
[FunctionName("TimerFunction")]
public static void TimerFunction(
[TimerTrigger("0 * * * * *")]TimerInfo timerInfo,
[Mqtt] ICollector<IMqttMessage> outMessages)
{
outMessages.Add(new MqttMessage("topic/one", body, MqttQualityOfServiceLevel.AtLeastOnce, true));
outMessages.Add(new MqttMessage("topic/two", body, MqttQualityOfServiceLevel.AtLeastOnce, true));
}
The connection to the MQTT broker is made when the first message is published and then reused/kept open for later messages.