UNPKG

rocket.chat.mqtt

Version:

It's a MQTT Server, using redis to scale horizontally.

72 lines (56 loc) 1.55 kB
'use strict' var eos = require('end-of-stream') var test = require('tape').test var helper = require('./helper') var aedes = require('../') var setup = helper.setup var connect = helper.connect var noError = helper.noError test.skip('supports pingreq/pingresp', function (t) { t.plan(1) var s = noError(connect(setup())) s.inStream.write({ cmd: 'pingreq' }) s.outStream.on('data', function (packet) { t.equal(packet.cmd, 'pingresp', 'the response is a pingresp') }) }) test('supports keep alive disconnections', function (t) { t.plan(2) t.timeoutAfter(2000) var s = connect(setup(null, 2000), { keepalive: 1 }) var start = Date.now() eos(s.conn, function () { t.ok(Date.now() >= start + 1500, 'waits 1 and a half the keepalive timeout') t.pass('ended') }) }) test('supports keep alive disconnections after a pingreq', function (t) { t.plan(2) t.timeoutAfter(3000) var s = connect(setup(null, 3000), { keepalive: 1 }) var start setTimeout(function () { start = Date.now() s.inStream.write({ cmd: 'pingreq' }) }, 1000) eos(s.conn, function () { t.ok(Date.now() >= start + 1500, 'waits 1 and a half the keepalive timeout') t.pass('ended') }) }) test('disconnect if a connect does not arrive in time', function (t) { t.plan(2) t.timeoutAfter(200) var s = setup(aedes({ connectTimeout: 50 })) var start = Date.now() eos(s.conn, function () { t.ok(Date.now() >= start + 50, 'waits waitConnectTimeout before ending') t.pass('ended') }) })