Библиотека QuickFIX C ++ - общий вопрос о ThreadedSocketInitiator - PullRequest
9 голосов
/ 17 августа 2011

Я новичок в QuickFIX, и у меня есть несколько вопросов относительно QuickFix:

1) Учитывая, что в одно время между получателем и инициатором будет только один сеанс исправления. Я не совсем понимаю назначение классов ThreadedSocketInitiator и ThreadedSocketAcceptor.

Или существуют эти классы для упрощения нескольких сеансов, в которых несколько «инициаторов» могут общаться с разными акцепторами и наоборот?

2) Есть ли в QuickFIX некоторые виды постоянства сообщений, например, что произойдет, если сообщение будет потеряно при передаче? Движок заботится о повторной отправке сообщения?

1 Ответ

5 голосов
/ 18 августа 2011

1) Quickfix использует 1 поток на сеанс. Вы можете предположить, что двигатель - это весь процесс.

ThreadedSocketInitiator используется, когда вы хотите использовать движок в качестве клиента. Вы подключаетесь к другому серверу и передаете сообщения. Вы инициируете соединения, отсюда и имя инициатора. Вы создаете новый поток для каждого сеанса, который вы устанавливаете на сервере.

ThreadedSocketAcceptor используется, когда вы хотите использовать движок в качестве сервера. Вы принимаете соединения, следовательно, акцептор. При настройке нового сеанса с клиентом новый поток создается только для этого конкретного сеанса.

Помните, что все сеансы имеют уникальный идентификатор, чтобы различать несколько сеансов. Сервер может иметь несколько сеансов с одним и тем же клиентом и наоборот.

2) Да. Но получатель должен инициировать сообщение ResendRequest, чтобы отправитель отправил его снова. Он сделает это автоматически, проверив флаг задержки в файле конфигурации, если он не получил ответа на уже отправленное сообщение.

...