Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Proxy client

# proxy_client.nim

{.push gcsafe, raises: [].}

import json_rpc/rpcclient
import ./[rpc_format, http_server, proxy_server]

createRpcSigsFromNim(RpcClient, RpcConv):
  proc hello(input: string): string
  proc bye(input: string): string

proc main() {.async.} =
  let srv = startServer()
  defer: await srv.stopServer()

  let proxy = await startProxy("http://" & $srv.localAddress()[0])
  defer: await proxy.stopProxy()

  let client = newRpcHttpClient()
  await client.connect("http://" & $proxy.localAddress()[0])
  defer: await client.close()

  let resp1 = await client.hello("Daisy")
  doAssert resp1 == "Hello Daisy"
  let resp2 = await client.bye("Daisy")
  doAssert resp2 == "Proxy Bye Daisy"

when isMainModule:
  waitFor main()
  echo "ok"