zeromq как постоянно общаться с одним конкретным клиентом в асинхронной многопоточной модели - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь использовать библиотеку C ++ ZMQ в качестве коммуникационной библиотеки, пытаюсь создать многопоточный сервер, позволяющий одновременно отвечать нескольким клиентам.Ниже приведен пример: https://github.com/booksbyus/zguide/blob/master/examples/C%2B%2B/asyncsrv.cpp

Короче говоря, пример выглядит так:

клиент -> сокет ROUTER (основной поток сервера) -> сокет DEALER (рабочий поток сервера)) -> сокет ROUTER -> клиент.

Но мое приложение должно будет разрешить многократный обмен данными между клиентом и рабочим потоком за один сеанс, мне нужно:

client -> serverосновной поток -> рабочий поток сервера -> клиент -> рабочий поток сервера -> клиент ... рабочий поток сервера -> клиент

или что-то подобное.Причина, по которой мне это нужно, заключается в том, что beucase данные для клиента иногда слишком велики, чтобы помещать их в один пакет ZMQ, мне нужно разбить данные на несколько блоков, отправляя их по одному (я имею в виду «отправить»)отправить / получить пару в ZMQ).И есть senario, что серверу необходимо сначала отправить один пакет, выполнить некоторую обработку (связь с другим модулем), а затем отправить следующие пакеты.

Спасибо за любую помощь!

...