UNPKG

dpaw-qweb-app

Version:

Simple viewer app to interface with QGIS/monorail

58 lines (49 loc) 1.6 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; let Obs = Rx.Observable; function makeRelayDriver(opts) { let relay = Object.create(Relay); let relayOpts = { baseAddr: "wss://brocket.dpaw.wa.gov.au", channel: 'dendrite', appID: 'qgis', 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('Subscriber received msg ', msg)); relay.connect(); relay.on('pub/open', () => { relay.dispatch({tag: 'wrapped', payload: {tag: 'unwrapped', payload: ['message']}}); log('Pub channel open'); }); function relayDriver(outgoing$) { outgoing$.subscribe( msg => relay.dispatch(msg) ); let incoming$ = relay.message$ .do(msg => log('RelayDriver.incoming: prefilter <- msg is ', msg)) .filter( msg => !u.isUndefined(msg)) .do(msg => log('RelayDriver.incoming: postfilter -> msg is ', msg)) .share(); let incoming2$ = Obs.interval(5000) .map(() => ({tag: 'beat', payload: {msg: 'dadum'}})); let incoming3$ = Obs.interval(5000) .map(() => ("{\"tag\": \"beat\", \"payload\": {msg: \"dadum\"}}")); log('Leaving relayDriver'); return incoming$; } return relayDriver; } function transfer(msg) { return msg; } module.exports = makeRelayDriver;