Setup: Took MqttDotnet r25 from svn 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. Looked in the history of the project: In 2009 the whole solution was added, it came from some other repository. Most commits are bugfixes, performance tuning and some small new features. It's clean code, a bit old school style (like my own code lol) Last commit was setting the target back from 4.5 to 2.0 framework, that's something to investigate. These modes are available OnceAndOnceOnly = 2, (ExactlyOnce)(That would be the guaranteed delivery) AtLeastOnce = 1, BestEfforts = 0 (AtMostOnce) =========================================================================== Win7 Interval:1000ms SensorCOunt:1000 Qos:BestEfforts started test and went for dinner, when I came back 2972000 messages were send and received by the test prog. CPU load unnoticable on both win7 boxes, network to 3Mbps Second run 1373000 message 100% correct Going to push it now... =========================================================================== Win7 Interval:1000ms SensorCOunt:10000 Qos:BestEfforts Win7boxTest: 30-50% win7boxMosq: 20-30% Network: 30Mbps Msg/sec: 9800 Total messages: 3300000 =========================================================================== Win7 Interval:20ms SensorCOunt:100 Qos:BestEfforts Win7boxTest: 0% win7boxMosq: 20-30% Network: 9Mbps Msg/sec: 3206 Total messages: 615500 =========================================================================== Win7 Interval:20ms (notice that a Windows.Forms Timer is very unreliable when the whole system is stressed) SensorCOunt:1000 Qos:BestEfforts Win7boxTest: 80% win7boxMosq: 40-60% Network: 70Mbps Msg/sec: 19000+ Total messages: 5415000 =========================================================================== Win7 Interval:20ms SensorCOunt:10000 Qos:BestEfforts Win7boxTest: 90% win7boxMosq: 50-60% Network: 80Mbps Msg/sec: 19000+ Total messages: 24220000 The 20000Msg/sec can't be broken. Untill now one complaint, my laptop is getting noisy CHANGING QOS NOW !!!!!!!!!!!!!!!!!!!!!!!!! =========================================================================== Win7 Interval:1000ms SensorCOunt:8 Qos:OnceAndOnceOnly It goes nuclear, Socket Exceptions everywhere CHANGING QOS NOW !!!!!!!!!!!!!!!!!!!!!!!!! GOING BACK TO THE SECOND STABLE MODE BestEfforts =========================================================================== Going to test RPi, cheating here, because I already installed mono-complete which brought me framework 2.0 support. Setup: Test App runs on RPi B+ and sends and receives at the same time. Mosquitto runs on Win7 box and is monitored frequently. =========================================================================== Rpi B+ Interval:1000ms SensorCOunt:1000 Qos:BestEfforts It failed in the sense that RPi CPU goes to 100% and test app is not responding. But... No exceptions, no lost messages and if you wait long enough the UI responds to a button click. Exactly the behavior you want when a system is underpowered/overloaded. =========================================================================== Rpi B+ Interval:1000ms SensorCOunt:200 Qos:BestEfforts RPiboxTest: 40% win7boxMosq: Unnoticable Network: 0.5Mbps Msg/sec: 197 Total messages: 225300 =========================================================================== Rpi B+ Interval:1000ms SensorCOunt:400 Qos:BestEfforts RPiboxTest: 84% win7boxMosq: Unnoticable Network: ~1.1Mbps Msg/sec: 392 Total messages: 100000 UI still responsive =========================================================================== Rpi B+ Interval:1000ms SensorCOunt:500 Qos:BestEfforts RPiboxTest: 96% win7boxMosq: Unnoticable Network: ~1.3Mbps Msg/sec: 452 Total messages: 100000 UI NOT responsive anymore. =========================================================================== Rpi B+ Interval:20ms SensorCOunt:8 Qos:BestEfforts RPiboxTest: 77% win7boxMosq: Unnoticable Network: ~0.9Mbps Msg/sec: 316 Total messages: 48000 =========================================================================== Rpi B+ Interval:20ms SensorCOunt:16 Qos:BestEfforts RPiboxTest: 90% win7boxMosq: Unnoticable Network: ~1.1Mbps Msg/sec: 389 Total messages: 42000 =========================================================================== Rpi B+ Interval:20ms SensorCOunt:100 Qos:BestEfforts RPiboxTest: 95% win7boxMosq: Unnoticable Network: ~1.3Mbps Msg/sec: 447 Total messages: 175600 =========================================================================== This library has proven to be stable when targetting framework 2.0 GOING TO TEST FRAMEWORK 4.0 =========================================================================== Win7 Interval:20ms SensorCOunt:10000 Qos:BestEfforts Win7boxTest: 80% win7boxMosq: 20-60% (lower than 2.0) Network: 50Mbps (lower than 2.0) Msg/sec: 17800+ (lower than 2.0) Overall performance seems to be a bit worse than 2.0 Total messages: 15530000 =========================================================================== Win7 Interval:20ms SensorCOunt:10000 Qos:BestEfforts RPiboxTest: 95% win7boxMosq: Unnoticable Network: ~1.3Mbps Msg/sec: 440 (lower than 2.0) Overall performance seems to be a bit worse than 2.0 Total messages: 256800 =========================================================================== Gene prefers AtLeastOnce mode, BestEffords is stable, so we can always fall back on that. CHANGING QOS NOW !!!!!!!!!!!!!!!!!!!!!!!!! =========================================================================== Win7 Interval:20ms SensorCOunt:10000 Qos:AtLeastOnce Exceptions within a few seconds. =========================================================================== Win7 Interval:1000ms SensorCOunt:1000 Qos:AtLeastOnce Msg/sec: 984 From the 39000 sended only 20611 arrived, no exceptions. =========================================================================== Win7 Interval:1000ms SensorCOunt:100 Qos:AtLeastOnce Msg/sec: 98 All messages arrived, untill 65500 messages were send, another duplicate key exception. we're back to snail speed and it's unreliable too. Let's check out the RPi =========================================================================== Rpi B+ Interval:1000ms SensorCOunt:100 Qos:AtLeastOnce Msg/sec: 99 48800 without exceptions or lost messages. Then it broke, only exceptions no messages. Not good.