rocket.chat.mqtt
Version:
It's a MQTT Server, using redis to scale horizontally.
67 lines (56 loc) • 1.73 kB
JavaScript
/*globals options: false */
/*jslint node: true */
;
var assert = require('assert'),
qlobber = require('..'),
MapValQlobber = require('./options/_mapval').MapValQlobber;
var matcher_options = {
separator: "/",
wildcard_one: "+",
cache_adds: true
};
function add_bindings(matcher)
{
var i, j;
for (i = 0; i < 60000; i += 1)
{
for (j = 0; j < 100; j += 1)
{
matcher.add('app/test/user/behrad/testTopic-' + j, i);
}
matcher.add('app/test/user/behrad/+', i);
}
}
var matcher_default = new qlobber.Qlobber(matcher_options);
add_bindings(matcher_default);
var matcher_dedup = new qlobber.QlobberDedup(matcher_options);
add_bindings(matcher_dedup);
var matcher_mapval = new MapValQlobber(matcher_options);
add_bindings(matcher_mapval);
module.exports = function ()
{
var i, j, vals;
// This test is too slow with 60000
for (i = 0; i < 10; i += 1)
{
for (j = 0; j < 100; j += 1)
{
// Typically app would match and search each time
switch (options.Matcher)
{
case qlobber.QlobberDedup:
vals = matcher_dedup.match('app/test/user/behrad/testTopic-' + j);
assert(vals.has(i));
break;
case MapValQlobber:
vals = matcher_mapval.match('app/test/user/behrad/testTopic-' + j);
assert(vals.has(i));
break;
default:
vals = matcher_default.match('app/test/user/behrad/testTopic-' + j);
assert(vals.indexOf(i) >= 0);
break;
}
}
}
};