v2 / examples / jsonrpc / client.v
46 lines · 39 sloc · 978 bytes · f53920bcec4f43594143c41772b42b6465f1c6a9
Raw
1module main
2
3import net
4import net.jsonrpc
5
6fn main() {
7 addr := '127.0.0.1:42228'
8 mut stream := net.dial_tcp(addr)!
9 mut log_inter := jsonrpc.LoggingInterceptor{}
10 mut inters := jsonrpc.Interceptors{
11 event: [log_inter.on_event]
12 encoded_request: [log_inter.on_encoded_request]
13 request: [log_inter.on_request]
14 response: [log_inter.on_response]
15 encoded_response: [log_inter.on_encoded_response]
16 }
17
18 mut c := jsonrpc.new_client(jsonrpc.ClientConfig{
19 stream: stream
20 interceptors: inters
21 })
22
23 println('TCP JSON-RPC client on ${addr}')
24
25 d1 := c.request('kv.delete', {
26 'key': 'foo'
27 }, 'kv.delete')!
28 println('RESULT: ${d1}')
29
30 res := c.batch([
31 jsonrpc.new_request('kv.create', {
32 'key': 'foo'
33 'value': 'bar'
34 }, 'kv.create'),
35 jsonrpc.new_request('kv.create', {
36 'key': 'bar'
37 'value': 'foo'
38 }, 'kv.create'),
39 ])!
40 println('RESULT: ${res}')
41
42 c.notify('kv.create', {
43 'key': 'bazz'
44 'value': 'barr'
45 })!
46}
47