4 using MQTTnet.Client.Disconnecting;
26 public static IMqttClient
client =
new MqttFactory().CreateMqttClient();
28 public string Host {
get {
return _host; }
set { _host = value; } }
29 public int Port {
get {
return _port; }
set { _port = value; } }
31 public bool Tls {
get {
return _tls; }
set { _tls = value; } }
32 public string topic {
get {
return _topic; }
set { _topic = value; } }
67 public Connector(
string host,
int port,
string username,
string password)
89 await client.ConnectAsync(options, CancellationToken.None);
93 Console.WriteLine(ex.Message);
104 await client.DisconnectAsync();
114 await client.UnsubscribeAsync(topic);
124 await client.SubscribeAsync(topic);
135 public async Task
PublishAsync(
string topic,
string payload,
bool retainFlag =
true,
int qos = 1) =>
136 await client.PublishAsync(
new MqttApplicationMessageBuilder()
138 .WithPayload(payload)
139 .WithQualityOfServiceLevel((
MQTTnet.Protocol.MqttQualityOfServiceLevel)qos)
140 .WithRetainFlag(retainFlag)
151 message.
EventMessage = e.ConnectResult.ResultCode.ToString();
173 Payload = Encoding.UTF8.GetString(mq_message.ApplicationMessage.Payload);
187 if (_host == null || _port == 0)
189 throw new ArgumentException(
"No Host or Port");
191 mqttClientOptionsBuilder.WithClientId(_clientid);
192 mqttClientOptionsBuilder.WithTcpServer(_host, _port);
193 mqttClientOptionsBuilder.WithCleanSession();
194 if (_username != null && _password != null)
196 mqttClientOptionsBuilder.WithCredentials(_username, _password);
200 mqttClientOptionsBuilder.WithTls();
203 var options = mqttClientOptionsBuilder.Build();
MessageHandler messagehandler
Connector()
default constructor
static IMqttClient client
async void UnsubscribeTopic(string topic)
Unsubscribe Mqtt Topic
async Task Initialize()
Start Mqtt connection
IMqttClientOptions BuildClientOptions()
Option Builder
Connector(string host, int port)
constructor with parameters
Connector(string host, int port, string username, string password)
constructor with parameters
void MessageRecieved(MqttApplicationMessageReceivedEventArgs mq_message)
Message Handler
async void SubscribeTopic(string topic)
Subscribe Mqtt Topic
async Task PublishAsync(string topic, string payload, bool retainFlag=true, int qos=1)
Publish asynchronusly
CLass Connector to connect MQTT Server
delegate void MessageHandler(Connector c, Message e)
void DisconnectHandler(MqttClientDisconnectedEventArgs e)
Handler for disconnection
async Task< bool > CloseConnection()
Close Mqtt connection
static MqttClientOptionsBuilder mqttClientOptionsBuilder
void ConnectionHandler(MqttClientConnectedEventArgs e)
Handler for connection