Skip to content

Instantly share code, notes, and snippets.

@treeform
Created January 31, 2018 19:12
Show Gist options
  • Save treeform/636248572f783c128b7bf41fd50b1198 to your computer and use it in GitHub Desktop.
Save treeform/636248572f783c128b7bf41fd50b1198 to your computer and use it in GitHub Desktop.
proc webSocketListen(address: string, port: Port, protocol: string, cb: proc(ws: var WebSocket)) =
var socket = newSocket()
try:
socket.setSockOpt(OptReuseAddr, true)
socket.bindAddr(port, address)
socket.listen()
var selector = newSelector()
selector.register(socket.getFD, {EvRead}, nil)
while true:
if selector.select(1000).len > 0:
var client = newSocket()
accept(socket, client)
spawn readerThread(client, protocol, cb)
finally:
socket.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment