Files
mosca-playground/src/mqtt.mjs
Joe Fleming b2d98eb670 feat: add a simple webserver
load up client-side mqtt code, and static html website
2018-01-11 19:31:28 -07:00

46 lines
1.0 KiB
JavaScript

import mosca from 'mosca';
// source: https://github.com/mcollina/mosca/wiki/Mosca-basic-usage
export default function createMQTTServer(port = 1883) {
const moscaSettings = {
port,
persistence: {
factory: mosca.persistence.LevelUp,
path: 'db',
},
};
const server = new mosca.Server(moscaSettings);
const setup = () => {
console.log('Mosca server is up and running on port:', moscaSettings.port);
const message = {
topic: '/hello/world',
payload: 'abdce', // or a Buffer
qos: 0, // 0, 1, or 2
retain: true, // retain message for future subscribers
};
console.log('--- server publishing to mqtt ---');
server.publish(message, () => {
console.log('message published!');
});
};
server.on('ready', setup);
// fired when a message is published
server.on('published', packet => {
console.log(
'published event',
packet.retain ? '(persisted)' : '',
packet.topic,
packet.payload
);
});
return server;
}