clean up RPC structure
This commit is contained in:
+24
-19
@@ -6,26 +6,31 @@ let subcallback
|
||||
|
||||
new RPCServer(20000, [{
|
||||
name: "HelloWorldRPCGroup",
|
||||
exportRPCs: () => [{
|
||||
type: 'Call',
|
||||
name: 'echo',
|
||||
call: async (s:string) => s,
|
||||
},
|
||||
{
|
||||
type: 'Hook',
|
||||
name: 'subscribe',
|
||||
hook: async (callback):Promise<any> => {
|
||||
subcallback = callback
|
||||
return new SubscriptionResponse(""+Math.random())
|
||||
exportRPCs: () => [
|
||||
{
|
||||
name: 'echo',
|
||||
call: async (s:string) => s,
|
||||
},{
|
||||
name: 'simpleSubscribe',
|
||||
hook: async(callback) => {
|
||||
subcallback = callback
|
||||
return new SubscriptionResponse(""+Math.random())
|
||||
}
|
||||
},{
|
||||
name: 'subscribe',
|
||||
hook: async (callback):Promise<any> => {
|
||||
subcallback = callback
|
||||
return new SubscriptionResponse(""+Math.random())
|
||||
},
|
||||
onClose: (res:SubscriptionResponse, rpc:HookRPC) => {
|
||||
console.log("Specific close handler for", rpc.name, res)
|
||||
subcallback = null
|
||||
},
|
||||
onCallback: (...args) => { console.log.apply(console, args) }
|
||||
},
|
||||
onClose: (res:SubscriptionResponse) => {
|
||||
console.log("Specific close handler for", res)
|
||||
subcallback = null
|
||||
}
|
||||
},
|
||||
function add(...args:number[]):number {return args.reduce((a,b)=>a+b, 0)},
|
||||
function triggerCallback(...messages:any[]):number {return subcallback.apply({}, messages)},
|
||||
]
|
||||
function add(...args:number[]):number {return args.reduce((a,b)=>a+b, 0)},
|
||||
function triggerCallback(...messages:any[]):number {return subcallback.apply({}, messages)},
|
||||
]
|
||||
}])
|
||||
|
||||
try{
|
||||
|
||||
+17
-4
@@ -13,11 +13,24 @@ client.connect().then(async _ => {
|
||||
const handler = (s) => {
|
||||
counter++
|
||||
if(counter === 3)
|
||||
console.log("callback was called 3 times", counter === 3)
|
||||
console.log("subscribe call counter met", counter === 3)
|
||||
}
|
||||
|
||||
await client["HelloWorldRPCGroup"].subscribe(handler)
|
||||
client["HelloWorldRPCGroup"].triggerCallback("test1", "test1", "test1", )
|
||||
client["HelloWorldRPCGroup"].triggerCallback("test2", "test2", "test2", )
|
||||
client["HelloWorldRPCGroup"].triggerCallback("test3", "test3", "test3", )
|
||||
await Promise.all([
|
||||
client["HelloWorldRPCGroup"].triggerCallback("test1", "test1", "test1", ),
|
||||
client["HelloWorldRPCGroup"].triggerCallback("test2", "test2", "test2", ),
|
||||
client["HelloWorldRPCGroup"].triggerCallback("test3", "test3", "test3", ),
|
||||
])
|
||||
|
||||
counter = 0
|
||||
const simplehandler = (s) => {
|
||||
counter++
|
||||
if(counter === 3)
|
||||
console.log("simpleSubscribe call counter met", counter === 3)
|
||||
}
|
||||
await client["HelloWorldRPCGroup"].simpleSubscribe(simplehandler)
|
||||
client["HelloWorldRPCGroup"].triggerCallback("simple1", "simple1", "simple1", )
|
||||
client["HelloWorldRPCGroup"].triggerCallback("simple2", "simple2", "simple2", )
|
||||
client["HelloWorldRPCGroup"].triggerCallback("simple3", "simple3", "simple3", )
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user