# Websocket compatible server
#
# Produces Websocket client-server connections
class WebsocketServer
# Socket listening for incoming Websocket connections
var listener: TCPServer
# Is `self` closed?
var closed = false
# Creates a new Websocket server listening on given port
# with `max_clients` slots available
init with_infos(port: Int, max_clients: Int)
do
var listener = new TCPServer(port)
listener.listen max_clients
init(listener)
end
# Accepts an incoming connection
fun accept: WebsocketConnection
do
assert not listener.closed
var client = listener.accept
assert client != null
return new WebsocketConnection(client)
end
# Close the server and the socket below it
fun close
do
listener.close
closed = true
end
end
lib/websocket/websocket.nit:24,1--61,3