UNPKG

omelop

Version:

[![Build Status](https://travis-ci.org/node-omelop/omelop.svg?branch=master)](https://travis-ci.org/node-omelop/omelop)

81 lines 5.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MqttAdaptor = void 0; class MqttAdaptor { constructor(opts) { this.subReqs = {}; opts = opts || {}; this.publishRoute = opts.publishRoute; this.subscribeRoute = opts.subscribeRoute; } onPublish(client, packet) { let route = this.publishRoute; if (!route) { throw new Error('unspecified publish route.'); } let payload = packet.payload; if (payload instanceof Buffer) { payload = payload.toString('utf8'); } let req = { id: packet.messageId, route: route, body: packet }; client.emit('message', req); if (packet.qos === 1) { client.socket.puback({ messageId: packet.messageId }); } } onSubscribe(client, packet) { let route = this.subscribeRoute; if (!route) { throw new Error('unspecified subscribe route.'); } let req = { id: packet.messageId, route: route, body: { subscriptions: packet.subscriptions } }; this.subReqs[packet.messageId] = packet; client.emit('message', req); } onPubAck(client, packet) { let req = { id: packet.messageId, route: 'connector.mqttHandler.pubAck', body: { mid: packet.messageId } }; this.subReqs[packet.messageId] = packet; client.emit('message', req); } /** * Publish message or subscription ack. * * if packet.id exist and this.subReqs[packet.id] exist then packet is a suback. * Subscription is request/response mode. * packet.id is pass from client in packet.messageId and record in Omelop context and attached to the subscribe response packet. * packet.body is the context that returned by subscribe next callback. * * if packet.id not exist then packet is a publish message. * * otherwise packet is a illegal packet. */ publish(client, packet) { let mid = packet.id; let subreq = this.subReqs[mid]; if (subreq) { // is suback client.socket.suback({ messageId: mid, granted: packet.body }); delete this.subReqs[mid]; return; } client.socket.publish(packet.body); } } exports.MqttAdaptor = MqttAdaptor; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXF0dGFkYXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29ubmVjdG9ycy9tcXR0L21xdHRhZGFwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9CQSxNQUFhLFdBQVc7SUFJcEIsWUFBWSxJQUF5QjtRQUhyQyxZQUFPLEdBQTZDLEVBQUUsQ0FBQztRQUluRCxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzlDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBa0IsRUFBRSxNQUFxQjtRQUMvQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRTlCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7UUFFRCxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksT0FBTyxZQUFZLE1BQU0sRUFBRTtZQUMzQixPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0QztRQUVELElBQUksR0FBRyxHQUFHO1lBQ04sRUFBRSxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQ3BCLEtBQUssRUFBRSxLQUFLO1lBQ1osSUFBSSxFQUFFLE1BQU07U0FDZixDQUFDO1FBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFNUIsSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRTtZQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUN6RDtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBa0IsRUFBRSxNQUF1QjtRQUNuRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBRWhDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDbkQ7UUFFRCxJQUFJLEdBQUcsR0FBRztZQUNOLEVBQUUsRUFBRSxNQUFNLENBQUMsU0FBUztZQUNwQixLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRTtnQkFDRixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7YUFDdEM7U0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBRXhDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBa0IsRUFBRSxNQUF1QjtRQUNoRCxJQUFJLEdBQUcsR0FBRztZQUNOLEVBQUUsRUFBRSxNQUFNLENBQUMsU0FBUztZQUNwQixLQUFLLEVBQUUsOEJBQThCO1lBQ3JDLElBQUksRUFBRTtnQkFDRixHQUFHLEVBQUUsTUFBTSxDQUFDLFNBQVM7YUFDeEI7U0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBRXhDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILE9BQU8sQ0FBQyxNQUFrQixFQUFFLE1BQWlDO1FBQ3pELElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDcEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLE1BQU0sRUFBRTtZQUNSLFlBQVk7WUFDWixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixPQUFPO1NBQ1Y7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNKO0FBN0ZELGtDQTZGQyJ9