This commit is contained in:
2019-09-21 16:15:31 +02:00
parent 6005382a54
commit 597be1b80f
7 changed files with 878 additions and 130 deletions
-84
View File
@@ -1,84 +0,0 @@
import { RPCServer } from '../src/Backend'
import { SubscriptionResponse, ErrorResponse, SuccessResponse } from '../src/Types'
import { HookRPC } from '../src/Types'
import * as uuidv4 from "uuid/v4"
import { makeSubResponse } from '../src/Utils'
let subcallback
new RPCServer(20000, [{
name: "HelloWorldRPCGroup",
exportRPCs: () => [
{
name: 'echo',
call: async (s:string) => s,
},{
name: 'simpleSubscribe',
hook: async(callback) => {
subcallback = callback
return makeSubResponse()
}
},{
name: 'subscribe',
hook: async (callback):Promise<any> => {
subcallback = callback
return makeSubResponse()
},
onClose: (res, rpc) => {
console.log("Specific close handler for", rpc.name, res)
subcallback = null
},
onCallback: (...args) => { console.log.apply(console, args) }
},
function add(...args:number[]):number {return args.reduce((a,b)=>a+b, 0)},
function triggerCallback(...messages:any[]):number {return subcallback.apply({}, messages)},
]
}])
new RPCServer<{ topic: string }>(20001, [{
name: "HelloWorldRPCGroup",
exportRPCs: () => [
{
name: 'echo',
call: async (s:string) => s,
},{
name: 'simpleSubscribe',
hook: async(callback) => {
subcallback = callback
return {
result: "Success",
uuid: uuidv4(),
topic: ""
}
}
},{
name: 'subscribe',
hook: async (callback) => {
subcallback = callback
return {
result: "Success",
uuid: uuidv4(),
topic: ""
}
},
onClose: (res, rpc) => {
console.log("Specific close handler for", rpc.name, res)
subcallback = null
},
onCallback: (...args:any) => { console.log.apply(console, args) }
},
function add(...args:number[]):number {return args.reduce((a,b)=>a+b, 0)},
function triggerCallback(...messages:any[]):number {return subcallback.apply({}, messages)},
]
}])
try{
new RPCServer(20001, [{
name: "bad",
exportRPCs: () => [
(aaa,bbb,ccc) => { return aaa+bbb+ccc }
]
}])
}catch(badRPCError){
console.log("expected bad-RPC error happened: "+ !!badRPCError, String(badRPCError))
}
-36
View File
@@ -1,36 +0,0 @@
import { RPCSocket } from '../src/Frontend'
const client = new RPCSocket(20000, 'localhost')
client.connect().then(async _ => {
await client.info().then(console.log)
await client["HelloWorldRPCGroup"].echo("x")
.then(hopefullyX => console.log("echo('x') returned x: ", hopefullyX === "x", hopefullyX))
await client["HelloWorldRPCGroup"].add(1,2,3)
.then(hopefully6 => console.log("add(1,2,3) returned 6: ", hopefully6 === 6, hopefully6))
let counter = 0
const handler = (s) => {
counter++
if(counter === 3)
console.log("subscribe call counter met", counter === 3)
}
await client["HelloWorldRPCGroup"].subscribe(handler)
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", )
})