如何使用VB上的按钮断开与MQTT代理的连接



这是我的代码

Imports System
Imports uPLibrary.Networking.M2Mqtt
Imports uPLibrary.Networking.M2Mqtt.Messages
Imports System.Text.Encoding
Public Class WebForm1
Inherits System.Web.UI.Page
Private i As Integer = 0
Private Publisher As MqttClient = Nothing
Private Subscriber As MqttClient = Nothing
Private msgTime As String = ""
Private msgDate As String = ""
Const TIME_ID As String = "/CPM/Time"
Const DATE_ID As String = "/CPM/Date"
Const MATH_ID As String = "3.14"
Const DefaultInteger As Integer = 100
Const MyLong As Long = 45L
Const MySingle As Single = 45.55!
Const MyCharacter As Char = "a"c
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Publisher = New MqttClient("telemetry")
Dim b As Boolean = CBool(Publisher.Connect(Guid.NewGuid.ToString))
End Sub

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Subscriber = New MqttClient("telemetry")
Dim b As Byte = Subscriber.Connect(Guid.NewGuid.ToString)
Button1.Enabled = False
Subscriber.Subscribe(New String() {DATE_ID, TIME_ID}, New Byte() {MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE})
'Subscriber.Subscribe(New String() {TIME_ID}, New Byte() {MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE})
AddHandler Subscriber.MqttMsgPublishReceived, AddressOf Client_recievedMessage
End Sub
Protected Sub Client_recievedMessage(ByVal sender As Object, ByVal e As MqttMsgPublishEventArgs)
Dim s As String = System.Text.Encoding.[Default].GetString(e.Message)
Select Case e.Topic
Case DATE_ID
msgDate = s
Case TIME_ID
msgTime = s
End Select
End Sub
Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
End Sub
End Class

我想在button2_click函数处添加一个断开连接,以断开与代理的连接。当我点击订阅时,它正在连接到遥测代理,但当我按下按钮2时,我想断开连接。我将如何在MQTT 中做到这一点

Publisher.Disconnect()

很直接。。。

https://csharp.hotexamples.com/examples/uPLibrary.Networking.M2Mqtt/MqttClient/Disconnect/php-mqttclient-disconnect-method-examples.html

最新更新