|
- <?xml version='1.0' encoding='UTF-8' standalone='no'?>
- <section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_connector_8cs">
- <title>Connector.cs File Reference</title>
- <section>
- <title> Data Structures </title>
- <para>
- <itemizedlist>
- <listitem>
- <para>struct <link linkend="class_m_qtt_connection_1_1_connector">MQttConnection::Connector</link></para>
- <para><emphasis><summary>
- CLass Connector to connect MQTT Server
- </summary></emphasis></para>
- </listitem>
- </itemizedlist>
- </para>
- </section>
- <simplesect>
- <title> Namespaces </title>
- <para>
- <itemizedlist>
- <listitem>
- <para>struct <link linkend="namespace_m_qtt_connection">MQttConnection</link></para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <para>struct <link linkend="namespace_m_q_t_tnet">MQTTnet</link></para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <para>struct <link linkend="namespace_m_q_t_tnet_1_1_client">MQTTnet::Client</link></para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <para>struct <link linkend="namespace_m_q_t_tnet_1_1_client_1_1_options">MQTTnet::Client::Options</link></para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <para>struct <link linkend="namespace_m_q_t_tnet_1_1_client_1_1_disconnecting">MQTTnet::Client::Disconnecting</link></para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <para>struct <link linkend="namespace_m_q_t_tnet_1_1_client_1_1_connecting">MQTTnet::Client::Connecting</link></para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <para>struct <link linkend="namespace_system_1_1_text">System::Text</link></para>
- </listitem>
- </itemizedlist>
- </para>
- </simplesect>
- <simplesect>
- <title>Detailed Description</title>
- <para>Definition in file C:/Users/siegf/Documents/c#projects/MQttConnection/Connector.cs</para>
- </simplesect>
- <literallayout><computeroutput>
- 1 <emphasis class="keyword">using</emphasis> <link linkend="namespace_m_q_t_tnet">MQTTnet</link>;
- 2 <emphasis class="keyword">using</emphasis> <link linkend="namespace_m_q_t_tnet">MQTTnet</link>.Client;
- 3 <emphasis class="keyword">using</emphasis> <link linkend="namespace_m_q_t_tnet">MQTTnet</link>.Client.Options;
- 4 <emphasis class="keyword">using</emphasis> <link linkend="namespace_m_q_t_tnet">MQTTnet</link>.Client.Disconnecting;
- 5 <emphasis class="keyword">using</emphasis> <link linkend="namespace_m_q_t_tnet">MQTTnet</link>.Client.Connecting;
- 6
- 7 <emphasis class="keyword">using</emphasis> <link linkend="namespace_system">System</link>.Text;
- 8
- <link linkend="namespace_m_qtt_connection">9 </link><emphasis class="keyword">namespace </emphasis><link linkend="namespace_m_qtt_connection">MQttConnection</link>
- 10 {
- <link linkend="class_m_qtt_connection_1_1_connector">14 </link>    <emphasis class="keyword">public</emphasis> <emphasis class="keyword">class </emphasis><link linkend="class_m_qtt_connection_1_1_connector">Connector</link>
- 15     {
- <link linkend="class_m_qtt_connection_1_1_connector_1a46bf1f7a893e81f2bfc2003e3f26a248">16 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keywordtype">string</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a46bf1f7a893e81f2bfc2003e3f26a248">_host</link>;
- <link linkend="class_m_qtt_connection_1_1_connector_1a58f9cdc8f1cb51da3ea92e0f99343439">17 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keywordtype">int</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a58f9cdc8f1cb51da3ea92e0f99343439">_port</link>;
- <link linkend="class_m_qtt_connection_1_1_connector_1a24babcb82d6821bc515eb379689b9831">18 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keywordtype">bool</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a24babcb82d6821bc515eb379689b9831">_tls</link> = <emphasis class="keyword">true</emphasis>;
- <link linkend="class_m_qtt_connection_1_1_connector_1aeea81cea22224780de62b49448e51a17">19 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keywordtype">string</emphasis>? <link linkend="class_m_qtt_connection_1_1_connector_1aeea81cea22224780de62b49448e51a17">_username</link>;
- <link linkend="class_m_qtt_connection_1_1_connector_1aed0e2101e24576570dbfc3e0ff67d4f7">20 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keywordtype">string</emphasis>? <link linkend="class_m_qtt_connection_1_1_connector_1aed0e2101e24576570dbfc3e0ff67d4f7">_password</link>;
- <link linkend="class_m_qtt_connection_1_1_connector_1a38a1780881e46db382b0081e84dec889">21 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keywordtype">string</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a38a1780881e46db382b0081e84dec889">_payload</link>;
- <link linkend="class_m_qtt_connection_1_1_connector_1aea80d9e1b78fbcac3dd8fed0a2c43553">22 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keywordtype">string</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1aea80d9e1b78fbcac3dd8fed0a2c43553">_topic</link>;
- <link linkend="class_m_qtt_connection_1_1_connector_1a5ee1eb74dc932d5d32bb1d63ec2d9884">23 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keywordtype">string</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a5ee1eb74dc932d5d32bb1d63ec2d9884">_clientid</link> = <emphasis class="stringliteral">"Client"</emphasis>;
- <link linkend="class_m_qtt_connection_1_1_connector_1af3ffc60f9a3a5a45ee44dd68d0061cfd">24 </link>        <emphasis class="keyword">public</emphasis> <emphasis class="keyword">event</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1aadf00b0930e0e0e9bdc4417122de4cc2">MessageHandler</link> <link linkend="class_m_qtt_connection_1_1_connector_1af3ffc60f9a3a5a45ee44dd68d0061cfd">messagehandler</link>;
- 25         <emphasis class="keyword">public</emphasis> delegate <emphasis class="keywordtype">void</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1aadf00b0930e0e0e9bdc4417122de4cc2">MessageHandler</link>(<link linkend="class_m_qtt_connection_1_1_connector">Connector</link> c, <link linkend="class_m_qtt_connection_1_1_message">Message</link> e);
- <link linkend="class_m_qtt_connection_1_1_connector_1a1d622b71558d263ff44e64f271fa2a7a">26 </link>        <emphasis class="keyword">public</emphasis> <emphasis class="keyword">static</emphasis> IMqttClient <link linkend="class_m_qtt_connection_1_1_connector_1a1d622b71558d263ff44e64f271fa2a7a">client</link> = <emphasis class="keyword">new</emphasis> MqttFactory().CreateMqttClient();
- 27
- <link linkend="class_m_qtt_connection_1_1_connector_1ad981e55eb84c16c98247551f63cdd553">28 </link>        <emphasis class="keyword">public</emphasis> <emphasis class="keywordtype">string</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1ad981e55eb84c16c98247551f63cdd553">Host</link> { <emphasis class="keyword">get</emphasis> { <emphasis class="keywordflow">return</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a46bf1f7a893e81f2bfc2003e3f26a248">_host</link>; } <emphasis class="keyword">set</emphasis> { _host = value; } }
- <link linkend="class_m_qtt_connection_1_1_connector_1af31ed91ae52e0c42731b82bea19f602a">29 </link>        <emphasis class="keyword">public</emphasis> <emphasis class="keywordtype">int</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1af31ed91ae52e0c42731b82bea19f602a">Port</link> { <emphasis class="keyword">get</emphasis> { <emphasis class="keywordflow">return</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a58f9cdc8f1cb51da3ea92e0f99343439">_port</link>; } <emphasis class="keyword">set</emphasis> { _port = value; } }
- <link linkend="class_m_qtt_connection_1_1_connector_1a273dbd2e59a71b1a48e90bde14f9c52c">30 </link>        <emphasis class="keyword">public</emphasis> <emphasis class="keywordtype">string</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a273dbd2e59a71b1a48e90bde14f9c52c">Payload</link> { <emphasis class="keyword">get</emphasis> { <emphasis class="keywordflow">return</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a38a1780881e46db382b0081e84dec889">_payload</link>; } <emphasis class="keyword">set</emphasis> { _payload = value; } }
- <link linkend="class_m_qtt_connection_1_1_connector_1a0033b0fbfa2ec8d1de94bad99bd3392f">31 </link>        <emphasis class="keyword">public</emphasis> <emphasis class="keywordtype">bool</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a0033b0fbfa2ec8d1de94bad99bd3392f">Tls</link> { <emphasis class="keyword">get</emphasis> { <emphasis class="keywordflow">return</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a24babcb82d6821bc515eb379689b9831">_tls</link>; } <emphasis class="keyword">set</emphasis> { _tls = value; } }
- <link linkend="class_m_qtt_connection_1_1_connector_1ae5d44bfa0ed6a71b2c88b44941cebc08">32 </link>        <emphasis class="keyword">public</emphasis> <emphasis class="keywordtype">string</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1ae5d44bfa0ed6a71b2c88b44941cebc08">topic</link> { <emphasis class="keyword">get</emphasis> { <emphasis class="keywordflow">return</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1aea80d9e1b78fbcac3dd8fed0a2c43553">_topic</link>; } <emphasis class="keyword">set</emphasis> { _topic = value; } }
- <link linkend="class_m_qtt_connection_1_1_connector_1aaf5bf94b11b7df9ea83732a71fdd6d6f">33 </link>        <emphasis class="keyword">public</emphasis> <emphasis class="keywordtype">string</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1aaf5bf94b11b7df9ea83732a71fdd6d6f">clientid</link> { <emphasis class="keyword">get</emphasis> { <emphasis class="keywordflow">return</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a5ee1eb74dc932d5d32bb1d63ec2d9884">_clientid</link>; } <emphasis class="keyword">set</emphasis> { _clientid = value; } } 
- 34
- 35        
- <link linkend="class_m_qtt_connection_1_1_connector_1afc373aa4a9184b67a78a70b95d7a5309">36 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keyword">static</emphasis> MqttClientOptionsBuilder <link linkend="class_m_qtt_connection_1_1_connector_1afc373aa4a9184b67a78a70b95d7a5309">mqttClientOptionsBuilder</link> = <emphasis class="keyword">new</emphasis> MqttClientOptionsBuilder();
- 37         
- <link linkend="class_m_qtt_connection_1_1_connector_1aafa57e065aa277dec253cac3758f1706">41 </link>        <emphasis class="keyword">public</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1aafa57e065aa277dec253cac3758f1706">Connector</link>()
- 42         {
- 43             _host = <emphasis class="stringliteral">"localhost"</emphasis>;
- 44             _port = 1883;
- 45             _payload = <emphasis class="stringliteral">""</emphasis>;
- 46         }
- 47
- <link linkend="class_m_qtt_connection_1_1_connector_1af3d1789f38fe36a677dd0cb3a4d5fee0">53 </link>        <emphasis class="keyword">public</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1af3d1789f38fe36a677dd0cb3a4d5fee0">Connector</link>(<emphasis class="keywordtype">string</emphasis> host, <emphasis class="keywordtype">int</emphasis> port)
- 54         {
- 55             _host = host;
- 56             _port = port;
- 57             _payload = <emphasis class="stringliteral">""</emphasis>;
- 58         }
- 59
- <link linkend="class_m_qtt_connection_1_1_connector_1a6a359f1e77c22cd3d26373c87feefc1e">67 </link>        <emphasis class="keyword">public</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a6a359f1e77c22cd3d26373c87feefc1e">Connector</link>(<emphasis class="keywordtype">string</emphasis> host, <emphasis class="keywordtype">int</emphasis> port, <emphasis class="keywordtype">string</emphasis> username, <emphasis class="keywordtype">string</emphasis> password)
- 68         {
- 69             _host = host;
- 70             _port = port;
- 71             _username = username;
- 72             _password = password;
- 73             _payload = <emphasis class="stringliteral">""</emphasis>;
- 74         }
- 75
- <link linkend="class_m_qtt_connection_1_1_connector_1aa077e98aeaa4ec81e242083857e7c49a">80 </link>        <emphasis class="keyword">public</emphasis> async Task <link linkend="class_m_qtt_connection_1_1_connector_1aa077e98aeaa4ec81e242083857e7c49a">Initialize</link>()
- 81         {
- 82             <emphasis class="keywordflow">try</emphasis>
- 83             {
- 84                 client.UseApplicationMessageReceivedHandler(<link linkend="class_m_qtt_connection_1_1_connector_1a6a170759a9db5bd1464c07a969c16b29">MessageRecieved</link>);
- 85                 client.UseConnectedHandler(<link linkend="class_m_qtt_connection_1_1_connector_1a3db86926176d339460b095dd183e0452">ConnectionHandler</link>);
- 86                 client.UseDisconnectedHandler(<link linkend="class_m_qtt_connection_1_1_connector_1a6dfe87b563d27e79b1147d8b28016cbb">DisconnectHandler</link>);
- 87
- 88                 var options = <link linkend="class_m_qtt_connection_1_1_connector_1acc5913cc66f9ae009f056c3d700a135b">BuildClientOptions</link>();
- 89                 await client.ConnectAsync(options, CancellationToken.None);
- 90             }
- 91             <emphasis class="keywordflow">catch</emphasis> (Exception ex)
- 92             {
- 93                 Console.WriteLine(ex.Message);
- 94             }
- 95             
- 96         }
- 97
- <link linkend="class_m_qtt_connection_1_1_connector_1a85062f4ad74d03e4ae519e33e24b5d5f">102 </link>        <emphasis class="keyword">public</emphasis> async Task<bool> <link linkend="class_m_qtt_connection_1_1_connector_1a85062f4ad74d03e4ae519e33e24b5d5f">CloseConnection</link>()
- 103         {
- 104             await client.DisconnectAsync();
- 105             <emphasis class="keywordflow">return</emphasis> <emphasis class="keyword">true</emphasis>;
- 106         }
- 107        
- <link linkend="class_m_qtt_connection_1_1_connector_1a9977d0a97a20e23249d3b2c36b745f04">112 </link>        <emphasis class="keyword">public</emphasis> async <emphasis class="keywordtype">void</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a9977d0a97a20e23249d3b2c36b745f04">UnsubscribeTopic</link>(<emphasis class="keywordtype">string</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1ae5d44bfa0ed6a71b2c88b44941cebc08">topic</link>)
- 113         {
- 114             await client.UnsubscribeAsync(topic);
- 115             
- 116         }
- 117
- <link linkend="class_m_qtt_connection_1_1_connector_1a84420cf1305bc20b4d206bc69ec9b31c">122 </link>        <emphasis class="keyword">public</emphasis> async <emphasis class="keywordtype">void</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a84420cf1305bc20b4d206bc69ec9b31c">SubscribeTopic</link>(<emphasis class="keywordtype">string</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1ae5d44bfa0ed6a71b2c88b44941cebc08">topic</link>)
- 123         {
- 124            await client.SubscribeAsync(topic);   
- 125         }
- 126
- 135         <emphasis class="keyword">public</emphasis> async Task <link linkend="class_m_qtt_connection_1_1_connector_1a92b3558381c3039ce4d70eacf8cd0fbb">PublishAsync</link>(<emphasis class="keywordtype">string</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1ae5d44bfa0ed6a71b2c88b44941cebc08">topic</link>, <emphasis class="keywordtype">string</emphasis> payload, <emphasis class="keywordtype">bool</emphasis> retainFlag = <emphasis class="keyword">true</emphasis>, <emphasis class="keywordtype">int</emphasis> qos = 1) =>
- 136             await client.PublishAsync(<emphasis class="keyword">new</emphasis> MqttApplicationMessageBuilder()
- 137                 .WithTopic(topic)
- 138                 .WithPayload(payload)
- 139                 .WithQualityOfServiceLevel((<link linkend="namespace_m_q_t_tnet">MQTTnet</link>.Protocol.MqttQualityOfServiceLevel)qos)
- 140                 .WithRetainFlag(retainFlag)
- 141                 .Build());
- 142
- <link linkend="class_m_qtt_connection_1_1_connector_1a3db86926176d339460b095dd183e0452">147 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keywordtype">void</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a3db86926176d339460b095dd183e0452">ConnectionHandler</link>(MqttClientConnectedEventArgs e)
- 148         {
- 149             
- 150             <link linkend="class_m_qtt_connection_1_1_message">Message</link> message = <emphasis class="keyword">new</emphasis> ();
- 151             message.<link linkend="class_m_qtt_connection_1_1_message_1a5b610a214de5314cfc1ba9720841d693">EventMessage</link> = e.ConnectResult.ResultCode.ToString();
- 152             <link linkend="class_m_qtt_connection_1_1_connector_1af3ffc60f9a3a5a45ee44dd68d0061cfd">messagehandler</link>(<emphasis class="keyword">this</emphasis>, message);
- 153
- 154         }
- 155
- <link linkend="class_m_qtt_connection_1_1_connector_1a6dfe87b563d27e79b1147d8b28016cbb">160 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keywordtype">void</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a6dfe87b563d27e79b1147d8b28016cbb">DisconnectHandler</link>(MqttClientDisconnectedEventArgs e)
- 161         {
- 162             <link linkend="class_m_qtt_connection_1_1_message">Message</link> message = <emphasis class="keyword">new</emphasis> ();
- 163             message.<link linkend="class_m_qtt_connection_1_1_message_1a5b610a214de5314cfc1ba9720841d693">EventMessage</link> = e.Exception.Message;
- 164             <link linkend="class_m_qtt_connection_1_1_connector_1af3ffc60f9a3a5a45ee44dd68d0061cfd">messagehandler</link>(<emphasis class="keyword">this</emphasis>, message);
- 165         }
- 166
- <link linkend="class_m_qtt_connection_1_1_connector_1a6a170759a9db5bd1464c07a969c16b29">171 </link>        <emphasis class="keyword">private</emphasis> <emphasis class="keywordtype">void</emphasis> <link linkend="class_m_qtt_connection_1_1_connector_1a6a170759a9db5bd1464c07a969c16b29">MessageRecieved</link>(MqttApplicationMessageReceivedEventArgs mq_message)
- 172         {
- 173             <link linkend="class_m_qtt_connection_1_1_connector_1a273dbd2e59a71b1a48e90bde14f9c52c">Payload</link> = Encoding.UTF8.GetString(mq_message.ApplicationMessage.Payload);
- 174             
- 175             <link linkend="class_m_qtt_connection_1_1_message">Message</link> message = <emphasis class="keyword">new</emphasis> ();
- 176             message.<link linkend="class_m_qtt_connection_1_1_message_1a5b610a214de5314cfc1ba9720841d693">EventMessage</link> = <link linkend="class_m_qtt_connection_1_1_connector_1a273dbd2e59a71b1a48e90bde14f9c52c">Payload</link>;
- 177             <link linkend="class_m_qtt_connection_1_1_connector_1af3ffc60f9a3a5a45ee44dd68d0061cfd">messagehandler</link>(<emphasis class="keyword">this</emphasis>, message);
- 178         }
- 179
- <link linkend="class_m_qtt_connection_1_1_connector_1acc5913cc66f9ae009f056c3d700a135b">185 </link>        <emphasis class="keyword">private</emphasis> IMqttClientOptions <link linkend="class_m_qtt_connection_1_1_connector_1acc5913cc66f9ae009f056c3d700a135b">BuildClientOptions</link>()
- 186         {
- 187             <emphasis class="keywordflow">if</emphasis> (_host == null || _port == 0)
- 188             {
- 189                 <emphasis class="keywordflow">throw</emphasis> <emphasis class="keyword">new</emphasis> ArgumentException(<emphasis class="stringliteral">"No Host or Port"</emphasis>);
- 190             }
- 191             mqttClientOptionsBuilder.WithClientId(_clientid);
- 192             mqttClientOptionsBuilder.WithTcpServer(_host, _port);
- 193             mqttClientOptionsBuilder.WithCleanSession();
- 194             <emphasis class="keywordflow">if</emphasis> (_username != null && _password != null)
- 195             {
- 196                 mqttClientOptionsBuilder.WithCredentials(_username, _password);
- 197             }
- 198             <emphasis class="keywordflow">if</emphasis> (_tls)
- 199             {
- 200                 mqttClientOptionsBuilder.WithTls();
- 201             }
- 202
- 203             var options = mqttClientOptionsBuilder.Build();
- 204             <emphasis class="keywordflow">return</emphasis> options;
- 205         }
- 206
- 207     }
- 208 }
- </computeroutput></literallayout>
- </section>
|