首页 > 其他 > 详细

MQTT简记2

时间:2020-07-10 18:00:00      阅读:126      评论:0      收藏:0      [点我收藏+]

之前用的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

MQTT简记2

原文:https://www.cnblogs.com/lypstudy/p/13279715.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!