C#MQTTNET客户端使用说明
- 1.如何使用
- 1.我想启动MQTT客户端,我该怎么做?
- 2.我想收到服务器发来消息,我该怎么做?
- 3.我想知道客户端是否连接成功,我该怎么做?
- 3.我想知道怎样重连服务器,我该怎么做?
1.如何使用
代码github地址
1.我想启动MQTT客户端,我该怎么做?
try
{
IMqttClient client = new MqttFactory().CreateMqttClient();
var build = new MqttClientOptionsBuilder()
//配置客户端Id
.WithClientId()
//配置登录账号
.WithCredentials("test","1234")
//配置服务器IP端口 这里得端口号是可空的
.WithTcpServer("192.168.0.1", "8080")
//.WithTcpServer("")这是一个例子
;
//连接
await (());
}
catch (MqttConnectingFailedException) {
("身份校验失败");
}
catch (Exception ex){
var name = ().FullName;
("出现异常");
();
}
2.我想收到服务器发来消息,我该怎么做?
= new MqttApplicationMessageReceivedHandlerDelegate(MessageReceivedHandler);
/// <summary>
/// 收到消息
/// </summary>
/// <param name="obj"></param>
private void MessageReceivedHandler(MqttApplicationMessageReceivedEventArgs obj)
{
("===================================================");
("收到消息:");
($"主题:{}");
($"消息:{Encoding.()}");
("+++++++++++++++++++++++++++++++++++++++++++++++++++");
();
}
(args=> {
("===================================================");
("收到消息:");
($"主题:{}");
($"消息:{Encoding.()}");
("+++++++++++++++++++++++++++++++++++++++++++++++++++");
();
});
3.我想知道客户端是否连接成功,我该怎么做?
//连接成功
= new MqttClientConnectedHandlerDelegate(ConnectedHandler);
/// <summary>
/// 连接成功 在此处做订阅主题(Topic)操作
/// </summary>
/// <param name="obj"></param>
private void ConnectedHandler(MqttClientConnectedEventArgs obj)
{
("本客户端已连接成功");
($"地址:{}");
($"端口:{}");
($"客户端:{}");
($"账号:{}");
();
//第1种订阅方式
("主题名称").GetAwaiter().GetResult();
//第2种订阅方式
List<MqttTopicFilter> Topics = new List<MqttTopicFilter>();
(new MqttTopicFilter() { Topic= "主题名称A", QualityOfServiceLevel= });
(new MqttTopicFilter() { Topic = "主题名称B" });
(new MqttTopicFilter() { Topic = "主题名称C" });
(()).GetAwaiter().GetResult();
//第3种订阅方式
MqttClientSubscribeOptionsBuilder builder = new MqttClientSubscribeOptionsBuilder();
("AAA");
(()).GetAwaiter().GetResult();
}
(args=> {
("本客户端已连接成功");
($"地址:{}");
($"端口:{}");
($"客户端:{}");
($"账号:{}");
();
//第1种订阅方式
("主题名称").GetAwaiter().GetResult();
//第2种订阅方式
List<MqttTopicFilter> Topics = new List<MqttTopicFilter>();
(new MqttTopicFilter() { Topic = "主题名称A", QualityOfServiceLevel = });
(new MqttTopicFilter() { Topic = "主题名称B" });
(new MqttTopicFilter() { Topic = "主题名称C" });
(()).GetAwaiter().GetResult();
//第3种订阅方式
MqttClientSubscribeOptionsBuilder builder = new MqttClientSubscribeOptionsBuilder();
("AAA");
(()).GetAwaiter().GetResult();
});
3.我想知道怎样重连服务器,我该怎么做?
//断开连接 重连就写在此处
= new MqttClientDisconnectedHandlerDelegate(DisconnectedHandler);
/// <summary>
/// 客户端断开连接后,如果需要重连在此处实现
/// </summary>
/// <param name="obj"></param>
private void DisconnectedHandler(MqttClientDisconnectedEventArgs obj)
{
("本客户端已经断开连接");
();
try
{
(options).GetAwaiter().GetResult();
}
catch (Exception)
{
("重连失败");
}
}
(args =>
{
("本客户端已经断开连接");
();
try
{
(options).GetAwaiter().GetResult();
}
catch (Exception)
{
("重连失败");
}
});