This really simple websocket example doesn't work.

Server:

import std.stdio;
import vibe.d;

shared static this()
{
    auto router = new URLRouter();
    router.get("/", handleWebSockets((sock){
        "connected".writeln();
        sock.send("foo");
    }));

    auto settings = new HTTPServerSettings();
    settings.bindAddresses = ["127.0.0.1"];
    settings.port = 1918;

    listenHTTP(settings, router);
}

Client:

<!doctype html>
<script type="text/javascript">
new WebSocket("ws://127.0.0.1:1918/").onmessage = function(e){
    alert(e.data);
}
</script>

This server written in nodejs works well.

var Server = require('ws').Server;

var server = new Server({
	host : '127.0.0.1',
	port : 1918
});

server.on('connection', function(sock) {
    console.log("connected");
    sock.send("foo");
});

Something wrong with my D code?