M2Mqtt 库未发布消息,线程退出代码为 259
M2Mqtt library not publishing message, threads exiting with code 259
在我当前的 .NET 项目中,我想通过 MQTT 向代理发布消息,但我尝试了多种方法来实现此目的,但其中 none 有效。我想使用 M2Mqtt (Paho Link), but I also tried MqttDotNet 但没有成功。
我目前解决这个问题的方法是让最简单的实现工作,但即使是这个也行不通。我只是创建一个 MqttClient 实例,连接到代理(调试显示这通过 'IsConnected' 有效)然后我发布一条消息(简单字符串 'Local:0:user:dev')。尽管如此,我的经纪人从未收到此消息,我从 VisualStudio 得到的唯一反应是以下 4 行:
Der Thread 0x13a8 hat mit Code 259 (0x103) geendet.
Der Thread 0x16d4 hat mit Code 259 (0x103) geendet.
Der Thread 0x1ab0 hat mit Code 259 (0x103) geendet.
Der Thread 0xa48 hat mit Code 259 (0x103) geendet.
此消息是德语的,它与提到的线程退出消息相同 here。
我正在使用此代码进行连接、发布和断开连接,并且我已经在没有 'disconnect' 部分的情况下尝试了相同的代码。
MqttClient client = new MqttClient("127.0.0.1");
client.Connect("client");
client.Publish("cdj/new", Encoding.UTF8.GetBytes(message));
client.Disconnect();
只是为了确保代理正在运行,并且它可以接收到通过 Paho MQTT Utility 发送的完全相同的消息。我使用的是 .NET 4.0 和 M2Mqtt 4.0 版(因为最新版本适用于 .NET 4.5)。
我不知道我应该做些什么不同的事情,特别是因为没有异常或错误消息表明那里出了什么问题。
似乎是我通过代码或 GC 在发布操作期间关闭了网络套接字,所以现在我的解决方案是尽可能长时间地保持与代理的连接,以发送多条消息及其工作。
作为在发布操作完成后立即关闭套接字的解决方案,我建议使用 MqttMsgPublished 事件断开客户端。
在我当前的 .NET 项目中,我想通过 MQTT 向代理发布消息,但我尝试了多种方法来实现此目的,但其中 none 有效。我想使用 M2Mqtt (Paho Link), but I also tried MqttDotNet 但没有成功。
我目前解决这个问题的方法是让最简单的实现工作,但即使是这个也行不通。我只是创建一个 MqttClient 实例,连接到代理(调试显示这通过 'IsConnected' 有效)然后我发布一条消息(简单字符串 'Local:0:user:dev')。尽管如此,我的经纪人从未收到此消息,我从 VisualStudio 得到的唯一反应是以下 4 行:
Der Thread 0x13a8 hat mit Code 259 (0x103) geendet. Der Thread 0x16d4 hat mit Code 259 (0x103) geendet. Der Thread 0x1ab0 hat mit Code 259 (0x103) geendet. Der Thread 0xa48 hat mit Code 259 (0x103) geendet.
此消息是德语的,它与提到的线程退出消息相同 here。
我正在使用此代码进行连接、发布和断开连接,并且我已经在没有 'disconnect' 部分的情况下尝试了相同的代码。
MqttClient client = new MqttClient("127.0.0.1");
client.Connect("client");
client.Publish("cdj/new", Encoding.UTF8.GetBytes(message));
client.Disconnect();
只是为了确保代理正在运行,并且它可以接收到通过 Paho MQTT Utility 发送的完全相同的消息。我使用的是 .NET 4.0 和 M2Mqtt 4.0 版(因为最新版本适用于 .NET 4.5)。
我不知道我应该做些什么不同的事情,特别是因为没有异常或错误消息表明那里出了什么问题。
似乎是我通过代码或 GC 在发布操作期间关闭了网络套接字,所以现在我的解决方案是尽可能长时间地保持与代理的连接,以发送多条消息及其工作。
作为在发布操作完成后立即关闭套接字的解决方案,我建议使用 MqttMsgPublished 事件断开客户端。