I found that there is a module in vibe to handle Websockets upgrade request and perform handshaking.
However I don't really understand how to then listen for incoming data on the websocket:
vibe.http.websockets.Websocket class doesn't provide any interface for that. Is it still a work in progress?

Also looking at the sources of libevent driver I am wondering - won't websocket be closed immediately after
handling of incoming request: https://github.com/rejectedsoftware/vibe.d/blob/master/source/vibe/core/drivers/libevent2_tcp.d#L373?