src/wsabi.nim (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import ws, asyncdispatch, asynchttpserver # Global vars var server = newAsyncHttpServer() remote: WebSocket proc connectRemote(host: string) {.async.} = remote = await newWebSocket(host) echo "connected to remote" proc sendRemote(ws: WebSocket, data: string) {.async.} = await ws.send(data) echo await ws.receiveStrPacket() proc localServer(req: Request) {.async.} = var ws = await newWebSocket(req) await connectRemote("ws://test.ws-benchmark.cometchat-dev.com:7070/ws/") try: while ws.readyState == Open: let packet = await ws.receiveStrPacket() echo "local msg: " & packet await sendRemote(remote, packet) except WebSocketError: echo "client closed socket" when isMainModule: waitFor server.serve(Port(9001), localServer) |