dotnet / dotnet/MQTTnet

评论订阅接收保留消息不全,保留消息里有3000条,批量订阅只接收到了260多条,而且接收到的数量随机

Open
#1,886 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C#
Stars
5.1k
Forks
1.2k
PR merge metrics
No merged PRs in 30d

Description

评论订阅接收保留消息不全,保留消息里有3000条,批量订阅只接收到了260多条,而且接收到的数量随机

using MQTTnet;
using MQTTnet.Client;

namespace ConsoleApp1
{
internal class Program
{
static async Task Main(string[] args)
{
var mqttFactory = new MqttFactory();
var mqttClient = mqttFactory.CreateMqttClient();

var mqttClientOptions = new MqttClientOptionsBuilder()
.WithTcpServer("172.16.23.17", 65183)
.WithClientId("1").WithKeepAlivePeriod(TimeSpan.FromSeconds(10)).WithCredentials("qcxt", "qcxt.comA1+").WithProtocolVersion(MQTTnet.Formatter.MqttProtocolVersion.V500)
.Build();

await mqttClient.ConnectAsync(mqttClientOptions);
for (int i = 0; i < 3000; i++)
{
await mqttClient.PublishStringAsync($"sys/dev/{i}/test", Guid.NewGuid().ToString(), qualityOfServiceLevel: MQTTnet.Protocol.MqttQualityOfServiceLevel.AtLeastOnce, retain: true);
}
mqttClient.ApplicationMessageReceivedAsync += MqttClient_ApplicationMessageReceivedAsync;
mqttClient.SubscribeAsync($"sys/dev/+/test", MQTTnet.Protocol.MqttQualityOfServiceLevel.AtLeastOnce);
Console.WriteLine("Hello, World!");
Task.Run(async () =>
{
while (true)
{
Console.WriteLine($"{DateTime.Now} {count} 个");
await Task.Delay(1000);
}
});
Console.ReadLine();
}
static int count = 0;
private static Task MqttClient_ApplicationMessageReceivedAsync(MqttApplicationMessageReceivedEventArgs arg)
{
Console.WriteLine(arg.ApplicationMessage.Topic);
Task.Run(() =>
{
;
Console.WriteLine($"Received {Interlocked.Increment(ref count)} 个");
});
return Task.CompletedTask;
}
}
}
只接收到了260多条

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.