UNPKG

node-red-contrib-vban

Version:
40 lines (39 loc) 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Receiver = void 0; const Security_1 = require("./Security"); const events_1 = require("events"); class Receiver extends events_1.EventEmitter { constructor(server, opts = {}) { super(); this.server = server; this.messageHandler = (packet, sender) => { try { if (this.subProtocolFilter && !this.subProtocolFilter.includes(packet.subProtocol)) { return; } if (this.security && !this.security.check(sender.address)) { return; } if (this.streamName && this.streamName != packet.streamName) { return; } this.emit('message', packet, sender); } catch (e) { this.emit('error', e); } }; if (opts.allowedIps) { this.security = new Security_1.Security(opts.allowedIps); } if (opts.subProtocol) { this.subProtocolFilter = Array.isArray(opts.subProtocol) ? opts.subProtocol : [opts.subProtocol]; } if (opts.streamName) { this.streamName = opts.streamName; } this.server.on('message', this.messageHandler); } } exports.Receiver = Receiver;