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

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