Skip to content

ringabout/websocketx

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 

websocketx

Nim websocket for httpx.

Based on https://github.com/treeform/ws

Installation

nimble install websocketx

Usage

httpx

import options, asyncdispatch, httpx, websocketx


proc onRequest(req: Request) {.async.} =
  if req.path.isSome:
    if req.path.get == "/ws":
      var ws = await newWebSocket(req)
      await ws.send("Welcome to simple echo server")
      while ws.readyState == Open:
        let packet = await ws.receiveStrPacket()
        await ws.send(packet)
    else:
      req.send(Http404)
  else:
    req.send(Http404)


run(onRequest)

asyncdispatch

import websocketx, asyncdispatch, asynchttpserver

var server = newAsyncHttpServer()
proc cb(req: Request) {.async.} =
  if req.url.path == "/ws":
    var ws = await newWebSocket(req)
    await ws.send("Welcome to simple echo server")
    while ws.readyState == Open:
      let packet = await ws.receiveStrPacket()
      await ws.send(packet)
  else:
    await req.respond(Http404, "Not found")

waitFor server.serve(Port(9001), cb)