在我当前的.NET项目中,我希望通过MQTT向代理发布消息,但我尝试了几种方法来实现此操作,但它们都不起作用。我想用M2Mqtt(Paho Link),但我也试过MqttDotNet没有成功。M2Mqtt库没有发布消息,线程退出代码259
我目前解决这个问题的方法是让最简单的可能的实现工作,但即使这个不起作用。我只是创建一个MqttClient实例,连接到代理(调试通过'IsConnected'显示我的工作),然后发布消息(简单字符串'Local:0:user:dev')。尽管如此,我的经纪人从未收到这条消息,我从VisualStudio获得的唯一反应是这4行:
Der Thread 0x13a8 hat mit代码259(0x103)geendet。 Der Thread 0x16d4 hat mit Code 259(0x103)geendet。 Der线程0x1ab0帽子代码259(0x103)geendet。 Der Thread 0xa48 hat mit Code 259(0x103)geendet。
此消息是德语,它与提到的线程退出消息here相同。
我使用此代码来连接,发布和断开连接,并且我已经尝试了没有“断开”部分的相同代码。
MqttClient client = new MqttClient("127.0.0.1");
client.Connect("client");
client.Publish("cdj/new", Encoding.UTF8.GetBytes(message));
client.Disconnect();
只是为了确保,在经纪人的工作,它可以准确地接收通过泛美卫生组织MQTT工具发送相同的消息。我使用.NET 4.0和M2Mqtt 4.0版(因为最新版本是针对.NET 4.5的)。
我不知道我应该做什么不同,特别是因为没有任何exeption或错误消息指出哪里出了问题。
我不熟悉.net代码,但是有onConnected回调吗?如果这样的话,将发布和断开呼叫移到onConnected回调中。您可能在连接完成之前尝试发送 – hardillb
没有onConnected回调,缺少的连接不是问题,但它看起来像我(通过'Disconnect')或GC在发布操作期间关闭套接字。现在我尽可能长时间地保持连接以发送多条消息,无论如何,这应该是更好的练习;) –