MQTT简记2

之前用的2.8.5版本的,后来想升级一下,发现已经是3.0以上的,程序有所改动

如下:

(1)服务器端启动服务:

 

// 配置一个mqtt服务.
var optionsBuilder = new MqttServerOptionsBuilder()
//连接记录数,默认 一般为2000
.WithConnectionBacklog(2000)
//服务器连接端口
.WithDefaultEndpointPort(port)
//连接验证器

.WithConnectionValidator(e => ConnectionValidationHandler(e))
////持续会话
.WithPersistentSessions()

.WithDefaultCommunicationTimeout(TimeSpan.FromMilliseconds(60000))

//每个客户端主题存1千万条数据
.WithMaxPendingMessagesPerClient(1000000)
;
//创建Mqtt服务器
mqttServer = new MqttFactory().CreateMqttServer();

////开启订阅事件
mqttServer.ClientSubscribedTopicHandler= new MqttServerClientSubscribedHandlerDelegate(MqttNetServer_SubscribedTopic);

//取消订阅事件
mqttServer.ClientUnsubscribedTopicHandler = new MqttServerClientUnsubscribedTopicHandlerDelegate(MqttNetServer_UnSubscribedTopic);

//客户端消息事件
mqttServer.UseApplicationMessageReceivedHandler(MqttServe_ApplicationMessageReceived);

//客户端连接事件
mqttServer.UseClientConnectedHandler(MqttNetServer_ClientConnected);

//客户端断开事件
mqttServer.UseClientDisconnectedHandler(MqttNetServer_ClientDisConnected);

//启动服务
await Task.Run(async () => { await mqttServer.StartAsync(optionsBuilder.Build()); });

 

各个方法:连接断开订阅那些也类似

/// <summary>
/// 数据接收
/// </summary>

private static async Task MqttServe_ApplicationMessageReceived(MqttApplicationMessageReceivedEventArgs arg)
{

}

 

/// <summary>
/// mqtt客户端连接方法
/// </summary>
/// <returns></returns>

private static void ConnectionValidationHandler(MqttConnectionValidatorContext eventArgs)
{

}

 

更多的可以在github看    mqttnet开源库,https://github.com/chkr1011/MQTTnet        wiki

posted @   安相遇  阅读(729)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示