首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MQTTnet PublishAsync异常

MQTTnet PublishAsync异常
EN

Stack Overflow用户
提问于 2020-05-19 23:21:50
回答 1查看 751关注 0票数 1

我正在尝试在Xamarin应用程序中使用"MQTTnet“。它连接得很好,但是当我尝试发布任何东西时,它会发布,但大约5秒后,它就会抛出以下异常

代码语言:javascript
复制
MQTTnet.Exceptions.MqttCommunicationTimedOutException

我不太确定那里发生了什么,服务器成功地接收到了消息

代码语言:javascript
复制
Server auth xmr/47cd7021-0f32-4cd4-b549-e8ebce2df612 from 192.168.1.8
Client xmr/47cd7021-0f32-4cd4-b549-e8ebce2df612 connected
Total connections: 3
$SYS/POezxDu/new/clients xmr/47cd7021-0f32-4cd4-b549-e8ebce2df612
hello/world hey
Client xmr/47cd7021-0f32-4cd4-b549-e8ebce2df612 disconnected
Total connections: 2
$SYS/POezxDu/disconnect/clients xmr/47cd7021-0f32-4cd4-b549-e8ebce2df612

代码如下:

代码语言:javascript
复制
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using MQTTnet;
using MQTTnet.Client;
using MQTTnet.Client.Options;
using System.Threading;

namespace MQTTXamarin
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class Login : ContentPage
    {
        public Login()
        {
            InitializeComponent();
        }

        private void Btn_Login_Clicked(object sender, EventArgs e)
        {
            MqttConnect();  
        }

        /* MQTT */
        readonly IMqttClient client = new MqttFactory().CreateMqttClient();
        private async void MqttConnect()
        {
            var options = new MqttClientOptionsBuilder()
                .WithClientId("xmr/" + Guid.NewGuid().ToString())
                .WithTcpServer("192.168.1.200", 1883)
                .WithCredentials("DyPFunIOcljUT51i", "K1YMeKkvrK6yMvm7IlHadBA6JDBKzPGc")
                .Build();
            await client.ConnectAsync(options, CancellationToken.None);
            var message = new MqttApplicationMessageBuilder()
                .WithTopic("hello/world")
                .WithPayload("hey")
                .WithExactlyOnceQoS()
                .Build();
            await client.PublishAsync(message, CancellationToken.None);
        }

    }
}

是我做错了什么呢,还是这有问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-21 00:05:29

此问题已通过更改

代码语言:javascript
复制
.WithExactlyOnceQoS()

代码语言:javascript
复制
.WithAtLeastOnceQoS()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61894675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档