Обслуживание клиентов в ZMQ ROUTER

Как сокет ZeroMQ ROUTER поддерживает свои клиентские соединения внутри.

В руководстве говорится, что каждый клиент получает уникальный идентификатор, но неясно:

Что считается клиентом (на каждой машине свой клиент или каждое подключенное приложение?)Есть ли ограничение на количество запросов, полученных от клиента?

Причина в том, что я тестирую этот кодhttp://hintjens.com/blog:42) с ab:

#include "czmq.h"

int main(void)
{
    zctx_t *ctx = zctx_new();
    void *router = zsocket_new(ctx, ZMQ_ROUTER);
    zsocket_set_router_raw(router, 1);
    zsocket_set_sndhwm(router, 0);
    zsocket_set_rcvhwm(router, 0);
    int rc = zsocket_bind(router, "tcp://*:8080");
    assert(rc != -1);

    while (true) 
    {
        //  Get HTTP request
        zframe_t *handle = zframe_recv(router);
        if (!handle) break;          //  Ctrl-C interrupt
        char *request = zstr_recv(router);
        puts(request);     //  Professional Logging(TM)
        free(request);     //  We throw this away

        //  Send Hello World response
        zframe_send(&handle, router, ZFRAME_MORE + ZFRAME_REUSE);
        zstr_send(router, "HTTP/1.0 200 OK\r\n""Content-Type: text/plain\r\n""\r\n""Hello, World!");

        //  Close connection to browser
        zframe_send(&handle, router, ZFRAME_MORE);
        zmq_send(router, NULL, 0, 0);
    }
    zctx_destroy(&ctx);
    return 0;
}

Когда дано командуab -n 1000 -c 10 http://192.168.74.1:8080/ иногда он завершается нормально, но часто просто зависает на некоторое время, а затем либо завершается нормально, либо завершается с ошибкойapr_pollset_poll: The timeout specified has expired (70007) после некоторого случайного числа сообщений (скажем, 300, 700 и т. д.)

Интересно то, что, пока ab зависает (возможно, ожидает ответа), если вы открываете другое соединение с другой машины / браузера, это успешно выполняется. Как удается установить новое соединение из другого браузера, в то время как ab просто зависает?

Итак, интересно, является ли это «лимитом на соединение» ROUTER или что-то еще происходит. Обратите внимание, что HWM установлен в 0.