2025年CMQTTNET服务端使用说明

CMQTTNET服务端使用说明C MQTTNET 服务端使用说明 1 安装 MQTTNet 两种方式 Shell 代码地址 可视化安装 2 当前我的项目安装的依赖如下 3 如何使用 1 我想启动 MQTT 服务器 我该怎么做 2 我想知道 MQTT 服务器是否启动成功 我该怎么做 3 我想知道 MQTT 服务器是否停止允许 我该怎么做 4 我想知道有那些设备连接上了服务器 我该怎么做 5 我想知道有那些设备断开连接 我该怎么做 6

C#MQTTNET服务端使用说明

1.安装MQTTNet

两种方式

Shell

代码地址

可视化安装

2.当前我的项目安装的依赖如下

3.如何使用

1.我想启动MQTT服务器,我该怎么做?

2.我想知道MQTT服务器是否启动成功,我该怎么做?

3.我想知道MQTT服务器是否停止允许,我该怎么做?

4.我想知道有那些设备连接上了服务器,我该怎么做?

5.我想知道有那些设备断开连接,我该怎么做?

6.我想监听消息,我该怎么做?

7.我想连接的客户端校验身份信息后才允许收发消息,我该怎么做?

8.我想知道客户端订阅主题与取消订阅主题,我该怎么做?

1.订阅

2.取消订阅

9.我想关闭MQTT服务器,我该怎么做?
代码github地址

本次演示使用到的库为:MQTTNET

开发环境:.NET Framework 4.5以上 或 .Net Core 3.1以上

MQTTNET 其实不太吃.Net版本,这里为了演示用的**.Net Core 3.1**

因为MQTTNET 是一个标准库,这就意味着你.Net Core版本会使用了,.NET Framework 4.5

1.安装MQTTNet

两种方式

Shell
Install-Package MQTTNET
代码地址

代码github地址

可视化安装

鼠标右击你的项目——>

管理NuGet程序包

再NuGet包页面切换到浏览

搜索MQTTNet

2.当前我的项目安装的依赖如下

MQTTnet 3.0.16 必要

Microsoft.Extensions.Configuration 3.1.16

Microsoft.Extensions.Configuration.Abstractions 3.1.16

Microsoft.Extensions.Configuration.FileExtensions 3.1.16

Microsoft.Extensions.Configuration.Json 3.1.16

Newtonsoft.Json 13.0.1

Microsoft.Extensions.Options.ConfigurationExtensions 3.1.16

3.如何使用

1.我想启动MQTT服务器,我该怎么做?

 IMqttServer server = new MqttFactory().CreateMqttServer();
MqttServerOptionsBuilder serverOptions = new MqttServerOptionsBuilder();
serverOptions.WithDefaultEndpointPort(8080);
await server.StartAsync(serverOptions.Build());

2.我想知道MQTT服务器是否启动成功,我该怎么做?

server.StartedHandler = new MqttServerStartedHandlerDelegate(StartedHandler);
///
/// MQTT启动服务器事件
///

///
private void StartedHandler(EventArgs obj)
{
Console.WriteLine($"程序已经启动!监听端口为:{model.Port}");
}

/pre>

h4>3.我想知道MQTT服务器是否停止允许,我该怎么做?

/h4>

pre class='language-javascript'>

server.StoppedHandler = new MqttServerStoppedHandlerDelegate(StoppedHandler);
///
/// MQTT服务器停止事件
///

///

private void StoppedHandler(EventArgs obj)


{


Console.WriteLine("程序已经关闭");


}

/code>

code class='prism'>//客户端连接事件


server.ClientConnectedHandler = new MqttServerClientConnectedHandlerDelegate(ClientConnectedHandler);


///


/// 客户端连接到服务器事件
///

///

/param>

br /> private void ClientConnectedHandler(MqttServerClientConnectedEventArgs obj)

br /> {

br /> throw new NotImplementedException();

br /> }

br /> {

br /> Console.WriteLine($"{args.ClientId}此客户端已经连接到服务器");

br /> });

br /> server.ClientDisconnectedHandler = new MqttServerClientDisconnectedHandlerDelegate(ClientDisconnectedHandler);

br /> private void ClientDisconnectedHandler(MqttServerClientDisconnectedEventArgs obj)

br /> {

br /> Console.WriteLine($"断开连接的客户端:{obj.ClientId}");

br /> Console.WriteLine($"断开连接类型:{obj.DisconnectType.ToString()}");

br /> }

br /> Console.WriteLine($"断开连接的客户端:{args.ClientId}");

br /> Console.WriteLine($"断开连接类型:{args.DisconnectType.ToString()}");

br /> });

br /> ///

summary>


/// 收到各个客户端发送的消息


///

/summary>

br /> ///

param name="obj">

br /> /// 客户端订阅的主题

br /> ///


///
private void ClientSubscribedTopicHandler(MqttServerClientSubscribedTopicEventArgs obj)
{
Console.WriteLine($"客户端:{obj.ClientId}");
Console.WriteLine($"订阅主题:{obj.TopicFilter.Topic}");
}
2.取消订阅
  //客户端取消订阅主题事件
server.ClientUnsubscribedTopicHandler = new MqttServerClientUnsubscribedTopicHandlerDelegate(ClientUnsubscribedTopicHandler);
///
/// 客户端取消订阅主题
///

///
private void ClientUnsubscribedTopicHandler(MqttServerClientUnsubscribedTopicEventArgs obj)
{
Console.WriteLine($"客户端:{obj.ClientId}");
Console.WriteLine($"取消订阅主题:{obj.TopicFilter}");
}

9.我想关闭MQTT服务器,我该怎么做?

 public async Task StopAsync()
{
if (server != null)
{
if (server.IsStarted)
{
await server.StopAsync();
server.Dispose();
}
}
}
编程小号
上一篇 2025-02-16 12:51
下一篇 2025-03-03 23:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/144149.html