0.1.19 add ack to default socket commands, add socketsListen and consumersListen and private _eventListen methods
parent
3ab37ae694
commit
6da51d453f
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@uci/base",
|
"name": "@uci/base",
|
||||||
"version": "0.1.18",
|
"version": "0.1.19",
|
||||||
"description": "Multi type and transport JSON packet communication base class. Used in UCI extended classes",
|
"description": "Multi type and transport JSON packet communication base class. Used in UCI extended classes",
|
||||||
"main": "src/base",
|
"main": "src/base",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
25
src/base.js
25
src/base.js
|
@ -210,7 +210,7 @@ class Base extends EventEmitter {
|
||||||
sends.push(this.socket[name].send.bind(this.socket[name]))
|
sends.push(this.socket[name].send.bind(this.socket[name]))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sends.length === 1) return sends[0](packet)
|
if (sends.length === 1) return await sends[0](packet)
|
||||||
return Promise.all(
|
return Promise.all(
|
||||||
sends.map(send => {
|
sends.map(send => {
|
||||||
return send(packet)
|
return send(packet)
|
||||||
|
@ -277,6 +277,14 @@ class Base extends EventEmitter {
|
||||||
return found
|
return found
|
||||||
}
|
}
|
||||||
|
|
||||||
|
socketsListen(event,fn) {
|
||||||
|
this._eventListen('s',event,fn)
|
||||||
|
}
|
||||||
|
consumersListen(event,fn) {
|
||||||
|
this._eventListen('c',event,fn)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// TODO confirm Object.assign will be ok as it is not a deep copy
|
// TODO confirm Object.assign will be ok as it is not a deep copy
|
||||||
amendConsumerProcessing(funcs, trans) {
|
amendConsumerProcessing(funcs, trans) {
|
||||||
if (trans) {
|
if (trans) {
|
||||||
|
@ -362,6 +370,19 @@ class Base extends EventEmitter {
|
||||||
else return init()
|
else return init()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_eventListen(type,event,fn) {
|
||||||
|
for (let name of Object.keys(this.socket)) {
|
||||||
|
if (this.socket[name].type === type) {
|
||||||
|
if (fn==='stop') this.socket[name].removeAllListeners(event)
|
||||||
|
else {
|
||||||
|
console.log('adding listener',name,type,event,fn )
|
||||||
|
console.log(this.socket[name].name)
|
||||||
|
this.socket[name].on(event, fn)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_transport(name) {
|
_transport(name) {
|
||||||
return this.socket[name].transport
|
return this.socket[name].transport
|
||||||
} //getter for socket transport
|
} //getter for socket transport
|
||||||
|
@ -417,6 +438,8 @@ class Base extends EventEmitter {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
async _packetProcess(socket_name, packet) {
|
async _packetProcess(socket_name, packet) {
|
||||||
|
|
||||||
|
// TODO Try all added packet processors then defualt before sending back
|
||||||
// console.log(socket_name,packet)
|
// console.log(socket_name,packet)
|
||||||
let processor =
|
let processor =
|
||||||
packet._processor || this._processors[socket_name] || '_default'
|
packet._processor || this._processors[socket_name] || '_default'
|
||||||
|
|
|
@ -63,12 +63,14 @@ const namespaces = {
|
||||||
const commands ={
|
const commands ={
|
||||||
s:{
|
s:{
|
||||||
echo: async packet => {
|
echo: async packet => {
|
||||||
return new Promise( async (resolve) => {
|
packet.processed = true
|
||||||
packet.processed = true
|
packet.info = 'default socket echo'
|
||||||
packet.cmd = 'reply'
|
return packet
|
||||||
packet.info = 'default socket echo'
|
},
|
||||||
return resolve(packet)
|
ack: async packet => {
|
||||||
})
|
packet.cmd = 'reply'
|
||||||
|
packet.ack = true
|
||||||
|
return packet
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
c:{
|
c:{
|
||||||
|
|
Loading…
Reference in New Issue