選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

225 行
27 KiB

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