rocket.chat.mqtt
Version:
It's a MQTT Server, using redis to scale horizontally.
72 lines (47 loc) • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // import jwt from 'jsonwebtoken';
exports.connect = connect;
var _aedes = require('aedes');
var _aedes2 = _interopRequireDefault(_aedes);
var _net = require('net');
var _net2 = _interopRequireDefault(_net);
var _http = require('http');
var _http2 = _interopRequireDefault(_http);
var _websocketStream = require('websocket-stream');
var _websocketStream2 = _interopRequireDefault(_websocketStream);
require('./usertyping');
require('./userpresence');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const MQTT_PORT = process.env.MQTT_PORT || 1883;
const WS_PORT = process.env.WS_PORT || 8080;
// const JWT_SECRET = process.env.JWT_SECRET || 'secret';
function connect(options) {
const a = (0, _aedes2.default)(_extends({}, options));
const mqtt = _net2.default.createServer(a.handle);
mqtt.listen(MQTT_PORT, function () {
console.log('mqtt server listening on port', MQTT_PORT);
});
const httpServer = _http2.default.createServer();
_websocketStream2.default.createServer({
server: httpServer
}, a.handle);
httpServer.listen(WS_PORT, function () {
console.log('ws server listening on port', WS_PORT);
});
if (process.env.DEBUG || process.env.DEBUG_MQTT) {
a.on('clientError', function (client, err) {
console.log('client error', client.id, err.message);
});
a.on('publish', function (packet, client) {
if (client) {
console.log('message from client', client.id);
}
});
a.on('client', function (client) {
console.log('new client', client.id);
});
}
}