mirror of
https://github.com/logos-storage/nim-websock.git
synced 2026-01-09 17:13:09 +00:00
* 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.
22 lines
665 B
Nim
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()
|
|
|