Setup: Took nmqtt libraries from HG r460 into a WinForm TestApp. Test App runs on win7 Mosquitto runs on another Win7 box and is monitored frequently. If I have multiple sensors, they are sended in a burst. The time between the bursts is controlled by an interval. Behavior should be the same as the FakeTemperatureSensorCluster.hgx 172 bytes total, 46 in the topic and 126 in the message. =========================================================================== Interval:1000ms SensorCOunt:1 Everything seems fine, encountered a lost connection once.(after ca 1000 msg) =========================================================================== Interval:50ms SensorCOunt:1 Everything seems fine.(ca 5000 msg) =========================================================================== Interval:1000ms SensorCOunt:2 Sended 1000 message, had 495 exceptions, never saw sensor 2 arriving, but 5 times I could have missed. A first chance exception of type 'Nmqtt.InvalidTopicException' occurred in Nmqtt.dll Exception message: An item with the same key has already been added. When Disposing MqttConnection, this happens: System.ObjectDisposedException was unhandled Message: An unhandled exception of type 'System.ObjectDisposedException' occurred in System.dll Additional information: Cannot access a disposed object. =========================================================================== Interval:1000ms SensorCOunt:2 Started tweaking with Sleep to check how sensitive it is. Sleep(100) 1000 messages, 1 exception Sleep(50) 900 messages, 0 exceptions Sleep(20) 538 messages, 0 exceptions Sleep won't help me much further, testing on win7. =========================================================================== Interval:1000ms SensorCOunt:4 Sleep(20) 660 messages, 0 exceptions No sleep 1004 messages, 494 exceptions (I expected 750) =========================================================================== Interval:1000ms SensorCOunt:4 No sleep All previous tests were done with MqttQos.AtLeastOnce (=1) MqttQos.AtMostOnce 756 messages, 0 exceptions MqttQos.ExactlyOnce 728 messages, 366 exceptions What the ****, Again! MqttQos.AtMostOnce 1420 messages, 0 exceptions =========================================================================== Interval:50ms SensorCOunt:4 QOS:MqttQos.AtMostOnce unhandled exceptions in PingRequired after 8000 messages couldn't continue second run: 35000 messages, 0 exceptions =========================================================================== Interval:50ms SensorCOunt:16 QOS:MqttQos.AtMostOnce Sending messages at 320 messages/sec now. 170000 messages, 0 exceptions CPU load unnoticable on win7 box sending CPU load on receiving win7 box displaying mqtt traffic to 40% =========================================================================== Interval:50ms SensorCOunt:200 QOS:MqttQos.AtMostOnce Sending messages at 4000 messages/sec now. 1619000 messages, 0 exceptions CPU load on sending win7 box 25% CPU load on receiving win7 box displaying mqtt traffic to 25% (probably some overflooding protection) Let's push it! =========================================================================== Interval:50ms SensorCOunt:2000 QOS:MqttQos.AtMostOnce Sending messages at 40000 messages/sec now. 2302000 messages, 0 exceptions CPU load on sending win7 box 50% CPU load on receiving win7 box displaying mqtt traffic to 35% =========================================================================== Interval:50ms SensorCOunt:20000 QOS:MqttQos.AtMostOnce Sending messages at 400000 messages/sec now. 15460000 messages, 0 exceptions CPU load on sending win7 box 50% CPU load on receiving win7 box displaying mqtt traffic to 35% =========================================================================== This is what nmqtt says about the Quality of service AtLeastOnce: QOS Level 1 - Message is guaranteed delivery. It will be delivered at least one time, but may be delivered more than once if network errors occur. AtMostOnce: QOS Level 0 - Message is not guaranteed delivery. No retries are made to ensure delivery is successful. ExactlyOnce: QOS Level 2 - Message will be delivered once, and only once. Message will be retried until it is successfully sent.. =========================================================================== AtMostOnce is the mode that comes closest to guaranteed delivery, because the other modes are very buggy.