UNPKG

dpaw-monorail-plugin

Version:

JS library to link the brocket network to the QGIS/monorail server

48 lines (40 loc) 1.28 kB
/** * @fileOverview * @name relay-driver.js * @author Gavin Coombes * @license BSD-3-Clause * */ let Rx = require('rx'); let Relay = require('dpaw-brocket-relay'); let u = require('dpaw-brocket-utility'); let log = u.log; function makeRelayDriver(opts) { let relay = Object.create(Relay); let relayOpts = { baseAddr: "wss://brocket.dpaw.wa.gov.au", channel: 'dendrite', appID: 'monorail', userID: 'gavinco' }; relay.init(relayOpts); // relay.on('message', msg => log('monorail.plugin received msg', msg)); // relay.on('dispatch', msg => log('monorail.plugin dispatched msg', msg)); // relay.subscribe(msg => log('Monorail.plugin: Subscriber received msg ', msg)); relay.connect(); relay.on('pub/open', () => { relay.dispatch({tag: 'wrapped', payload: {tag: 'unwrapped', payload: 'kaboom'}}); log('Pub channel open'); }); function relayDriver(outgoing$) { outgoing$.subscribe( msg => relay.dispatch(msg) ); log('Monorail.relayDriver: has relay', relay); let incoming$ = relay.message$ .filter( v => !u.isUndefined(v) ) .filter( msg => msg.tag.search(/beat/) < 0 ) // dont want beat .share(); return incoming$; } return relayDriver; } module.exports = makeRelayDriver;