Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # MQTT Performance test script
- # Set parameters like QOS and KEEPALIVE and observe its throughput
- #
- # usage:
- # $ CLEAN=true KEEPALIVE=0 INTERVAL=500 QOS=1 node mqtt_performance_test.js
- #
- var mqtt = require('mqtt');
- var host = process.env['HOSTNAME'] || "localhost";
- var port = process.env['PORT'] || 1883;
- var user = process.env['USERNAME'] || "guest";
- var pass = process.env['PASSWORD'] || "guest";
- var topic = process.env['TOPIC'] || "test";
- var clean = process.env['CLEAN'] || true;
- var qos = parseInt(process.env['QOS']) || 0;
- var keepalive = parseInt(process.env['KEEPALIVE']) || 0;
- var interval = parseInt(process.env['INTERVAL']) || 5000;
- var counter = 0;
- function count() {
- console.log('[send]', Math.round(counter / interval * 1000), 'msg/s');
- counter = 0;
- }
- setInterval(count, interval);
- var client = mqtt.connect({
- host: host,
- port: port,
- username: user,
- password: pass,
- clean: clean,
- keepalive: keepalive,
- encoding: 'binary'
- });
- function immediatePublish() {
- setImmediate(publish);
- }
- function publish() {
- counter++;
- client.publish(topic, counter.toString(), {qos: qos}, immediatePublish);
- }
- client.on('connect', function(){
- console.log('[send] connected to', user, host, port, topic, qos, clean, keepalive);
- publish();
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement