uci-socket/examples/client.js

52 lines
1.6 KiB
JavaScript

import Consumer from '../src/consumer'
import btc from 'better-try-catch'
// const client1= new Consumer({name:'example-consumer1' })
const client= new Consumer({path:true, name:'example-consumer', initTimeout:30 })
// This is your client handler object waiting on a message to do something
const process = async (packet) => {
console.log('packet being processed at socket')
if (packet.cmd) {
if (this[packet.cmd]) return await this[packet.cmd](packet)
else return {error: 'command has no processing function', packet: packet }
} return {error: 'no command in packet', packet: packet }
}
client.pushed = async (packet) => {
return new Promise(resolve => {
console.log('pushed packet/n',packet)
resolve()
})
}
client.registerPacketProcessor(process)
client.on('connection', event => {
console.log('============ connection update ============')
console.log(event.id)
console.log(event.msg)
console.log(`${event.ready ? 'Consumer is connected' : 'Consumer is disconnected'}`)
console.log('======================================')
})
;
(async () => {
console.log('ready at start',client.ready)
// await Promise.all([client1.connect(),client2.connect()])
let [err, res] = await btc(client.connect)()
if (err) {
console.log('error', err)
} else {
console.log('ready now?',client.ready)
console.log('connect reponse',res)
let packet = {name: 'client', cmd:'doit', data:'sent by client'}
console.log('sending packet ', packet)
console.log('=========\n',await client.send(packet))
}
})().catch(err => {
console.error('FATAL: UNABLE TO START SYSTEM!\n',err)
})