Maybe this one:

import vibe.d;
import std.regex;
import std.array : appender;

static reg = ctRegex!"^/greeting/([a-z]+)$";

void main()
{
    setupWorkerThreads(logicalProcessorCount);
    runWorkerTaskDist(&runServer);
    runApplication();
}

void runServer()
{
    auto settings = new HTTPServerSettings;
    settings.options |= HTTPServerOption.reusePort;
    settings.port = 3000;
    settings.serverString = null;
    listenHTTP(settings, &handleRequest);
}

void handleRequest(HTTPServerRequest req,
                    HTTPServerResponse res)
{
    switch(req.path)
    {
    case "/": res.writeBody("Hello World", "text/plain");
        break;
    default:
        auto m = matchFirst(req.path, reg);
        string message = "Hello, ";
        auto app = appender(message);
        app.reserve(32);
        app ~= m[1];
        res.writeBody(app.data, "text/plain");
    }
}

On Mon, Oct 30, 2017 at 5:41 PM, ade90036 via Digitalmars-d <
[email protected]> wrote:

> On Thursday, 21 September 2017 at 13:09:33 UTC, Daniel Kozak wrote:
>
>> wrong version, this is my letest version: https://paste.ofcode.org/qWsQi
>> kdhKiAywgBpKwANFR
>>
>> On Thu, Sep 21, 2017 at 3:01 PM, Daniel Kozak <[email protected]> wrote:
>>
>> my version: https://paste.ofcode.org/RLX7GM6SHh3DjBBHd7wshj
>>>
>>> On Thu, Sep 21, 2017 at 2:50 PM, Sönke Ludwig via Digitalmars-d <
>>> [email protected]> wrote:
>>>
>>> Am 21.09.2017 um 14:41 schrieb Vadim Lopatin:
>>>>
>>>> [...]
>>>>>
>>>> Oh, sorry, I forgot the reusePort option, so that multiple sockets can
>>>> listen on the same port:
>>>>
>>>>     auto settings = new HTTPServerSettings("0.0.0.0:3000");
>>>>     settings.options |= HTTPServerOption.reusePort;
>>>>     listenHTTP(settings, &handleRequest);
>>>>
>>>
> Hi, would it be possible to re-share the example of vibe.d woth
> multithreaded support.
>
> The pastebin link has expired and the pull request doesnt have the latest
> version.
>
> Thanks
>
> Ade
>

Reply via email to