@Experimental(value=SOURCE_SINK) public class MqttIO extends java.lang.Object
MqttIO source returns an unbounded PCollection
containing MQTT message payloads (as
byte[]
).
To configure a MQTT source, you have to provide a MQTT connection configuration including
ClientId
, a ServerURI
, a Topic
pattern, and optionally username
and password
to connect to the MQTT broker. The following example illustrates various
options for configuring the source:
pipeline.apply(
MqttIO.read()
.withConnectionConfiguration(MqttIO.ConnectionConfiguration.create(
"tcp://host:11883",
"my_topic"))
MqttIO sink supports writing byte[]
to a topic on a MQTT broker.
To configure a MQTT sink, as for the read, you have to specify a MQTT connection configuration
with ServerURI
, Topic
, ...
The MqttIO only fully supports QoS 1 (at least once). It's the only QoS level guaranteed due to potential retries on bundles.
For instance:
pipeline
.apply(...) // provide PCollection<byte[]>
.MqttIO.write()
.withConnectionConfiguration(MqttIO.ConnectionConfiguration.create(
"tcp://host:11883",
"my_topic"))
Modifier and Type | Class and Description |
---|---|
static class |
MqttIO.ConnectionConfiguration
A POJO describing a MQTT connection.
|
static class |
MqttIO.Read
A
PTransform to read from a MQTT broker. |
static class |
MqttIO.Write
A
PTransform to write and send a message to a MQTT server. |
Modifier and Type | Method and Description |
---|---|
static MqttIO.Read |
read() |
static MqttIO.Write |
write() |
public static MqttIO.Read read()
public static MqttIO.Write write()