rocket.chat.mqtt
Version:
It's a MQTT Server, using redis to scale horizontally.
56 lines (49 loc) • 1.4 kB
JavaScript
/*
* Copyright (c) 2014-2017, Matteo Collina <hello@matteocollina.com>
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
var mqemitter = require('./')
var emitter = mqemitter({ concurrency: 10 })
var total = 1000000
var written = 0
var received = 0
var timerKey = 'time for sending ' + total + ' messages'
function write () {
if (written === total) {
return
}
written++
emitter.emit({ topic: 'hello', payload: 'world' }, write)
}
emitter.on('hello', function (msg, cb) {
received++
if (received === total) {
console.timeEnd(timerKey)
}
setImmediate(cb)
})
console.time(timerKey)
write()
write()
write()
write()
write()
write()
write()
write()
write()
write()
write()
write()