nim-websock/examples/client.nim
Arijit Das a1ae7d2c70
[WIP] Web socket client implementation. (#2)
* Implement websocket server.

* Implement websocket client.

* Run nimpretty.

* Remove commented code.

* Address comments.

* Address comments on websocket server.

* Use seq[byte] to store data.

* Working bytes conversion.

* Remove result from return

* Refactor the code.

* Minor change.

* Add test.

* Add websocket test and fix closing handshake.

* Add MsgReader to read data in external buffer.
2021-03-10 21:34:14 -06:00

22 lines
665 B
Nim

import ../src/ws, nativesockets, chronos, os, chronicles, stew/byteutils
let wsClient = waitFor newWebsocketClient("127.0.0.1", Port(8888), path = "/ws",
protocols = @["myfancyprotocol"])
info "Websocket client: ", State = wsClient.readyState
let reqData = "Hello Server"
for idx in 1 .. 5:
try:
waitFor wsClient.sendStr(reqData)
let recvData = waitFor wsClient.receiveStrPacket()
let dataStr = string.fromBytes(recvData)
info "Server:", data = dataStr
assert dataStr == reqData
except WebSocketError:
error "WebSocket error:", exception = getCurrentExceptionMsg()
os.sleep(1000)
# close the websocket
waitFor wsClient.close()